She*_*lam 5 iphone cocoa-touch objective-c uitableview
什么使图像加载时UITableView上的滚动如此不连贯?是因为他们需要添加为子视图吗?或者是因为图像需要缓存?都?
因为它们被添加为子视图,所以绘制子视图需要很多工作,因为它们必须被合成.当Core Graphics或Core Animation使用这些子视图绘制多个单元格时更是如此.
Loren Brichter(atebits)解释得更好:
就像在Mac OS X上一样,iPhone上有两个绘图系统.一个是CoreGraphics,另一个是LayerKit CoreAnimation.CoreGraphics确实在CPU上绘图,CoreAnimation确实利用了它认为最快的东西 - 很可能是GPU.
iPhone上的GPU讨厌混合,这就是为什么Apple建议您尽可能多地保持视图不透明的原因.有时你别无选择 - 如果你在图像上有标签,你就不得不使标签透明,否则你的文字周围就会出现一个很大的难看.
什么是开发人员?当然,将CoreGraphics预先混合到您自己的视图中.如果您根据需要将所有内容混合到一个静态视图中(例如,当一个表格视图在屏幕上移动一个单元格时),对于第一帧来说,它的成本会更高一些,但CoreAnimation之后的每一帧都只处理一个大的不透明的质地......它喜欢它.它不仅仅是混合.如果你考虑过度绘制的情况,每个表单元格有一个大视图是一个很大的胜利,因为CoreAnimation只会触摸屏幕上的一个给定像素而不是多次(可能取决于你的旧重叠多少)查看层次结构).
| 归档时间: |
|
| 查看次数: |
2140 次 |
| 最近记录: |