系统性能优化方案
/*
TableView需要很多的滚动性能,不然用户会在滚动过程中发现动画的瑕疵,为了保证tableview的平滑滚动,需要使用以下的措施
1.正确使用“reuseIdentifier”来重用cells
2.尽量使所有的view opaque(视图不透明),包括cell自身
3.避免渐变,图片缩放,后台选人
4.缓存行高
5.如果cell内部实现的内容来至web,那么使用异步加载,缓存请求结果
6.使用shadowPath 来画阴影
7.减少subviews的数量
8.尽量不使用“cellForRowAtIndexPath:” 如果你需要使用它,只用一次然后缓存结果
9.使用正确的数据结构来存储数据
10.使用“rowHeight”、“sectionFooterHeight”、"sectionHeaderHeight"来设定固定的高,不要请求delegate
TableView需要很多的滚动性能,不然用户会在滚动过程中发现动画的瑕疵,为了保证tableview的平滑滚动,需要使用以下的措施
1.正确使用“reuseIdentifier”来重用cells
2.尽量使所有的view opaque(视图不透明),包括cell自身
3.避免渐变,图片缩放,后台选人
4.缓存行高
5.如果cell内部实现的内容来至web,那么使用异步加载,缓存请求结果
6.使用shadowPath 来画阴影
7.减少subviews的数量
8.尽量不使用“cellForRowAtIndexPath:” 如果你需要使用它,只用一次然后缓存结果
9.使用正确的数据结构来存储数据
10.使用“rowHeight”、“sectionFooterHeight”、"sectionHeaderHeight"来设定固定的高,不要请求delegate
*/
/*
选择是否缓存图片
常见的从bundle中加载图片的方式有两种:一个用“imagNamed”,一个用“imageWithContentsOfFile”,第一种比较常见
既然有两种类似的方法来实现相同的目的,那么它们之间的差异在哪呢?
“imageNamed”的优点是当加载时会缓存图片,“imageNamed”的文档中这么说:这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话,如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象
“imageWithContentsOfFile”仅加载图片
如果你要加载一个大图片而且是一次性使用,那么就没必要缓存这个图片,用第二种就可以,这样不会浪费内存来缓存它,然而,图片在反复重用的情况下“imageNamed”是一个好的选择
选择是否缓存图片
常见的从bundle中加载图片的方式有两种:一个用“imagNamed”,一个用“imageWithContentsOfFile”,第一种比较常见
既然有两种类似的方法来实现相同的目的,那么它们之间的差异在哪呢?
“imageNamed”的优点是当加载时会缓存图片,“imageNamed”的文档中这么说:这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话,如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象
“imageWithContentsOfFile”仅加载图片
如果你要加载一个大图片而且是一次性使用,那么就没必要缓存这个图片,用第二种就可以,这样不会浪费内存来缓存它,然而,图片在反复重用的情况下“imageNamed”是一个好的选择
*/