循环引用:
1.当时用代理时
2.类与类之间属性与属性互相引用.
3.Block会对代码块中的强指针进行强引用.
4.当时用定时器时,注意可能会造成循环引用.(消失时一定要关闭定时器)
tableview更新数据:
更新tableview时会自动加一个序列帧动画:
[tableview beginUpdate]
[tableview endUpdate]
tableview性能优化:
1.缓存池
2.Cell行高的问题. ( 提前缓存好行高 )如果是不等高的Cell,必须提前计算好行高.heightForRowInCell. 此方法会调用很多次,再此方法当中尽量少做大量计算操作. 可以提前预估一个行高.estimatedRowHeight.200-250
3.如果说有网络请求数据的话一定要异步加载.
4.从网络上面加载的数据一定要做缓存.
5.Cell内部控件最好是一次给添加完,不要动态添加子控件.
6.如果说Cell内部子控件比较多,可以考虑把不需要与用户交互的控件通过DrawRect方法生成图片的方式进行绘制.
7.如果cell当中使用圆形图片时,图片最好是做通过Quartz2d做裁剪操作.
如果是使用layer.cornerRadius + maskToBounds会造成离屏渲染,会消耗性能.
8.如果说imageView的宽高出现了小数点,会造成锯齿,也会造成离屏渲染
9.如果cell里面有图片时,imageView的尺寸要与图片保持一样大.让服务器提供两套图片:一开始加载小图,点击时再去加载大图.
如果尺寸不一样要对图片进行压缩(transform用矩阵形变操作)操作.
image.png
网友评论