内容简介:之前问到如何优化复杂
之前问到如何优化复杂 UITableViewCell
卡顿的问题, 有位大佬发了下面的一段文字, 在此记录一下
-
1.
cell的行高不是固定值,需要计算,则要尽可能缓存行高值,避免重复计算行高。因为heightForRowAtIndexPath:是调用最频繁的方法。 -
2.滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!(
SDWebImage已经实现异 步加载,配合这条性能杠杠的)。 -
3.正确使用
reuseIdentifier来重用Cells -
4.尽量少用或不用透明图层
-
5.如果
Cell内现实的内容来自web,使用异步加载,缓存请求结果 -
6.减少
subviews的数量 -
7.在
heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你需要用到它, 只用一次然后缓存结果 -
8.所有的子视图都预先创建,如果不需要显示可以设置
hidden,尽量少动态给Cell添加View -
9.颜色不要使用
alph -
10.栅格化
-
11.
cell的subViews的各级opaque值要设成 YES,尽量不要包含透明的子Viewopaque用于辅助绘图系统,表示UIView是否透明。在不透明的情况下,渲染视图时需要快速 地渲染,以提 高性能。渲染最慢的操作之一是混合(blending)。提 高性能的方法是减少混合操 作的次数,其实就是GPU的不合理使用,这是硬件来完成的(混合操作由GPU来执行,因为这 个硬件就是用来做混合操作的,当然不只是混合)。 优化混合操作的关键点是在平衡CPU和GPU的负载。还有就是cell的layer的shouldRasterize要设成YES。 -
12.
cell异步加载图片以及缓存 -
13.异步绘制
-
(1)在绘制字符串时,尽可能使用
drawAtPoint: withFont:,而不要使用更复杂的drawAtPoint:(CGPoint)point forWidth:(CGFloat)width withFont:(UIFont *)font lineBreakMode:(UILineBreakMode)lineBreakMode; 如果要绘制过长的字符串,建议自己先截 断,然后使用drawAtPoint: withFont:方法绘制。 -
(2)在绘制图片时,尽量使用
drawAtPoint,而不要使用drawInRect。drawInRect如果在绘 制过程中对图片进行放缩,会特别消耗CPU。 -
(3)其实,最快的绘制就是你不要做任何绘制。有时通过
UIGraphicsBeginImageContextWithOptions()或者CGBitmapContextCeate()创建位图会显 得更有意义,从位图上面抓取图像,并设置为CALayer的内容。 如果你必须实现-drawRect:,并且你必须绘制大量的东西,这将占用时间。 -
(4)如果绘制
cell过程中,需要下载cell中的图片,建议在绘制cell一段时间后再开启图 片下载任务。譬如先画一个默认图片,然后在 0.5S 后开始下载本cell的图片。 -
(5)即使下载
cell图片是在子线程中进行,在绘制cell过程中,也不能开启过多的子线程。 最好只有一个下载图片的子线程在活动。否则也会影响UITableViewCell的绘制,因而影响了UITableViewCell的滑动速度。(建议结合使用NSOpeartion和NSOperationQueue来下载图片, 如果想尽可能找的下载图片,可以把[self.queuesetMaxConcurrentOperationCount:4];) -
(6)最好自己写一个
cache,用来缓存UITableView中的UITableViewCell,这样在整个UITableView的生命周期里,一个cell只需绘制一次,并且如果发生内存不足,也可以有效的 释放掉缓存的cell。
-
-
14.不要将
tableview的背景颜色设置成一个图片。这回严重影响UITableView的滑动速度。在 限时免费搜索里,我曾经翻过一个错误:self.tableView_.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageNamed:@"background.png"]];通过这种方式 设置UITableView的背景颜色会严重影响 UTIableView 的滑动流畅性。修改成self.tableView_.backgroundColor = [UIColor clearColor];之后,fps从43上升到60左右。 滑动比较流畅。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Book of CSS3
Peter Gasston / No Starch Press / 2011-5-13 / USD 34.95
CSS3 is the technology behind most of the eye-catching visuals on the Web today, but the official documentation can be dry and hard to follow. Luckily, The Book of CSS3 distills the heady technical la......一起来看看 《The Book of CSS3》 这本书的介绍吧!