博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableView的优化
阅读量:5138 次
发布时间:2019-06-13

本文共 710 字,大约阅读时间需要 2 分钟。

UITableView的优化主要从三个方面入手:

  • 提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法;

  • 异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;

  • 滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!(SDWebImage已经实现异步加载,配合这条性能杠杠的)。

除了上面最主要的三个方面外,还有很多几乎大伙都很熟知的优化点:

  • 正确使用reuseIdentifier来重用Cells

  • 尽量使所有的view opaque,包括Cell自身

  • 尽量少用或不用透明图层

  • 如果Cell内现实的内容来自web,使用异步加载,缓存请求结果

  • 减少subviews的数量

  • 在heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你需要用到它,只用一次然后缓存结果

  • 尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示

尾巴

肯定很多人会非常好奇,为什么我都是手动用代码创建Cell的?现在主流不都是Xib、Storyboard什么的嘛?我的回答是:要想提高效率,还是手动写有用!抛开Xib、Storyboard需要系统自动转码,给系统多加了一层负担不谈,自定义Cell的绘制更是无从下手,所以,在我看来,复杂的需要高效的界面,还是手动写代码吧!!!

参考:http://www.cocoachina.com/ios/20150602/11968.html

转载于:https://www.cnblogs.com/songchunmin/p/7789813.html

你可能感兴趣的文章
The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
查看>>
form 组件
查看>>
Android模拟Home键退回桌面
查看>>
二阶段之五
查看>>
解决scrollview不滚动
查看>>
如何对拍
查看>>
为什么我markdown里的数学公式全崩了???
查看>>
Java 使用JDBC连接查询操作数据
查看>>
(四)mybatis逆向工程
查看>>
UnityShader之遮挡透明
查看>>
sql语法中的inner join on, left join on和 right join on的区别和详细使用方法(转载)...
查看>>
写互联网文案的新技巧
查看>>
org.hibernate.hql.internal.ast.QuerySyntaxException
查看>>
css3 导入字体
查看>>
python-requests
查看>>
Selenium-一组元素的定位
查看>>
oracle课堂随笔--第十四天
查看>>
设计一个应用或网站时的流程
查看>>
mac安装配置mysql
查看>>
BZOJ 1011: [HNOI2008]遥远的行星
查看>>