1. 内存多点 比 频繁的创建内存再销毁 更有利:
比如: 一个可重用的视图根据数据可能会显示[1, 15]张图片, 最好的做法是先创建6个ImageView, 然后根据需要隐藏; 而不是频繁的创建再销毁
注意: 对象多点没关系, 但是不要频繁的创建销毁
2. OC 编程核心思想: 封装
继承
多态
3. UIImageView 加载图片 默认是伸缩模式, 图片会变形
UIViewContentModeScaleToFill: 默认, 图片伸缩后全部填充;
UIViewContentModeScaleAspectFill: 等比例缩放后填充(有些内容会超出UIImageView的边界);
UIViewContentModeScaleAspectFit: 等比例缩放后填充(保证整张图片都在UIImageView里面, 会出现UIImageView有一部分未填充)
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;//把超出边界的部分剪切掉
如果图片需要伸缩: 关键字scale
如果图片等比例: 关键字aspect
4. 一个手势监听器, 只能监听一个对应的View, 多个view需要手势监控时创建多个手势
5. 坐标系转换
//conver: 转换
//把myView的坐标参照系 从view1转换为view2;
//也就是myView的frame以前是以view1的(0, 0)为原点 计算的, 转换后以view2的(0, 0)为原点计算
[view1 converRect:myView toView: view2];
/**
view2: 转换后参考的view
view1: 转换前参考的view
myView: 需要转换的view
*/
[view2 converRect:myView fromView:view1];
6. 键盘高度216, 键盘的 消失和 出现 都有动画时间
7. 分页显示的算法公式
(总个数 + 每页显示的个数 - 1) / 每页显示的个数
使用情景:
1. 知道总个数
2. 知道每一页最多显示个数
3. ==>算出一共显示多少页
PS: 每次看MJ的视频都收获良多, 不仅是对代码的优化, 更是对OC的思想的理解都得到了极大的提升