摘要: # 为什么这么做? 现在有这么一个使用场景,基线能生成项目A,项目B,项目C...如果只有项目A中使用SDK_A,其他项目都不使用,这时候就需要对基线进行差分,只有当我切换到项目A时,才插入SDK_A。 不同于cocoapods的库管理方式,xcodeproj是通过脚本在编译前向项目中插入指定代码文 阅读全文
posted @ 2021-07-13 23:44 小二黑挖土 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 相对于UIKit,使用coretext绘制文本效率高,具有更高的自由度,可随时插入图片,增加文本点击事件等。 1.增加文本的点击事件 思路:定义UILabel子类,设置可点击的富文本range及其他属性(颜色、字体),touchBegin方法中根据点击位置判断所在行所在index,最后判断index 阅读全文
posted @ 2018-11-29 14:08 小二黑挖土 阅读(336) 评论(0) 推荐(0) 编辑
摘要: runtime这个东西,项目是很少用到的,但面试又避不可少,了解其内部的机制对底层的理解还是很有必要的。 1.动态添加属性 拓展类别属性的简单实现 a.定义字面量指针 static char dynamicAttributes; b.设置属性 objc_setAssociatedObject(sel 阅读全文
posted @ 2018-11-28 09:51 小二黑挖土 阅读(232) 评论(0) 推荐(0) 编辑
摘要: UIPageViewController中的边缘点击手势大概是屏幕的1/6,市面的大多数阅读器点击手势都在1/3以上,或者我干脆想自定义点击的范围,但又不想放弃系统的翻页效果,这时候该怎么做了?其实很简单,听我细细说来。 1.首先禁用UIPageViewController的tap手势(如果不禁用, 阅读全文
posted @ 2018-11-26 19:30 小二黑挖土 阅读(766) 评论(0) 推荐(0) 编辑
摘要: 由于H5的灵活多变,动态可配的特点,也为了避免冗长 的审核周期,H5页面在app上的重要性正日益突显。 iOS应用于H5交互的控件主要是UIWebView及WKWebView WKWebView是14年随iOS8推出的,很好的解决了UIWebView加载速度慢,内存占用大的问题 WebViewJav 阅读全文
posted @ 2018-11-23 09:39 小二黑挖土 阅读(1394) 评论(0) 推荐(0) 编辑
摘要: 控制器的转场动画 众所周知,iOS中的页面跳转方式有两种,一种是navigationController push/pop新页面,另一种是当前页面present/dismiss新页面 1. push/pop 转场动画 系统默认的push动画是从右往左推出新视图,pop则是从左往右消失 自定义实现步骤 阅读全文
posted @ 2018-11-21 14:46 小二黑挖土 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 一、标题 #+空格+文字,几个#号代表几级标题,一共支持6级标题 # 一级 ## 二级 ### 三级 #### 四级 ##### 五级 ###### 六级 二、字体 加粗 **文字** 斜体 *文字* 斜体加粗 ***文字*** 删除线 ~文字~ 三、引用 引用的文字前加>即可,多个>表示多层嵌套 阅读全文
posted @ 2018-11-19 09:33 小二黑挖土 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 贴一下常用的git命令 1.新建代码库 git init 在当前目录新建git代码库 git init [project-name] 新建一个目录,将其初始化git代码库 git clone [url] 下载一个项目 2.配置 git的设置文件为.gitconfig,它可以在用户主目录下(全局配置) 阅读全文
posted @ 2018-11-16 23:22 小二黑挖土 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 应用:一般用于图片装饰,增加层次感。 附上动效图: 实现其实不难,使用遮罩绘制路径即可,这里路径是高中时学过的正弦函数 y = Asin(wx+b)+c - A是指曲线的振幅 - w好像是相位,决定曲线的周期 2pi/w - b,可看做是w(x+b/w),是x的横线偏移量 - c是y的纵向偏移量 这 阅读全文
posted @ 2018-11-15 22:11 小二黑挖土 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 这篇专题主要解决的问题有: 一、照片墙中图像数据未下载时,使用默认的占位图片 二、滑动时不加载图片,保持滑动的流畅性 合理高效的使用占位图片,是在用户和图像之前建立一层代理,用户不直接操作图片,而将所有与图片有关的操作放在代理对象当中。 贴一下ImageProxy的关键代码 if (!hasLoad 阅读全文
posted @ 2018-11-13 22:15 小二黑挖土 阅读(210) 评论(0) 推荐(0) 编辑