来讨论一下 怎么对UITableView性能优化吧

nsm1168 发布于 2013年08月14日
无人欣赏。

来讨论一下怎么对UITableView 性能优化吧,深层次优化,使其滑动更流畅?

共12条回复
tinyfool 回复于 2013年08月14日

具体点说,你现在遇到了问题了?

nsm1168 回复于 2013年08月14日

腾讯面试问到这个问题,说除了预先缓存、异步加载,cell的重用机制这些常用方法外,还有什么性能优化的方法,深层次的。

我回答了解到得就这些方法了,其他深层次就就不知道了。

tinyfool 回复于 2013年08月14日

我还真不知道他在说啥,面试真是一个可怕的事情

zyhiang0909 回复于 2013年08月14日

还可以优化touch事件传递,把不需要接受touch事件的view的userInteractionEnabled设为NO,这样滑动会更流畅

sipdar 回复于 2013年08月14日

https://blog.twitter.com/2012/simple-strategies-smooth-animation-iphone twitter的官方博客 看看他们怎么优化Cell的

answer-huan 回复于 2013年08月14日

需要绘制阴影的时候通过指定阴影的路径提高效率。

riven 回复于 2013年08月15日

个人觉得,除非是有很多自定义CELL的情况,不然没什么优化的,如果要自定义CELL,肯定是CELL重用,CELL上的各种特效缓存(比如动态行高之类的),还有就是图片的Lazy load了。

tinyfool 回复于 2013年08月15日

5楼提的那个twitter的优化是比较有价值的,一般来说只有这类东西对性能要求是最高的。单独问UITableView怎么优化,我就觉得是一个过早优化问题,要是说到twitter或者微博客户端怎么优化,那么则是一个可以讨论的问题

liues1992 回复于 2013年08月15日

5楼~~~

chenzhuolin 回复于 2013年08月16日

我当初面试的时候,面试官问我,如果UITableView滑动的时候很卡,要怎么解决。我说如果是因为图片太多的话,可以考虑把图片缓存起来。然后面试官继续问缓存了还是卡怎么解决,我就说如果是Cell里面元素太多而又没有复用的话也会影响滑动的流畅性,要检查Cell的复用。面试官接着说,复用了还是卡你怎么解决,我只好问我可以知道是什么问题导致卡吗,至此面试官认为我在处理这方面的问题上经验不足。 当时还真让人诅丧呀。

yishenggudo 回复于 2013年08月16日

10楼真悲剧

Joey 回复于 2013年08月17日

除了楼主自己说的“预先缓存、异步加载,cell的重用机制”之外,自己再补充1个:

尽量避免使用过多透明的view或者图片。这个可以开启混合图层模式,红色的是不透明的,绿色的是透明的,不透明会增加渲染的时间,会导致fps降低。解决办法是尽量使用不透明的图片或者subview,甚至可以放弃使用subview,改在drawRect方法中draw出来。看看苹果自己实现的联系人列表就能发现几乎没有红色的,就是说没有透明的区域,这样能提高fps,提高流畅性。

一般fps在50-60之间,就可以不用优化了,比较低的话,可以参考上面的。

如果tableView不超过一页,这些优化没有什么作用,也没有优化的必要。

补充: 感觉和楼上某个连接里说的还是比较类似的,:)

本帖有12个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]