基础优化
1、如果你有透明的 Views 你应该设置它们的 opaque 属性为 YES。
Apple 的文档对于为图片设置透明属性的描述是:
(opaque) 这个属性给渲染系统提供了一个如何处理这个 view 的提示。如果设为 YES, 渲染系统就认为这个 view 是完全不透明的,这使得渲染系统优化一些渲染过程和提高性能。如果设置为 NO,渲染系统正常地和其它内容组成这个 View。默认值是 YES。
在相对比较静止的画面中,设置这个属性不会有太大影响。然而当这个 view 嵌在 scroll view 里边,或者是一个复杂动画的一部分,不设置这个属性的话会在很大程度上影响 app 的性能。
你可以在模拟器中用 Debug\Color Blended Layers 选项来发现哪些 view 没有被设置为 opaque。目标就是,能设为 opaque 的就全设为 opaque!
2、在 Image Views 中调整图片大小
如果要在 `UIImageView` 中显示一个来自 bundle 的图片,你应保证图片的大小和 UIImageView 的大小相同。在运行中缩放图片是很耗费资源的,特别是 `UIImageView` 嵌套在 `UIScrollView` 中的情况下。
如果图片是从远端服务加载的你不能控制图片大小,比如在下载前调整到合适大小的话,你可以在下载完成后,最好是用 background thread,缩放一次,然后在 UIImageView 中使用缩放后的图片。
3、选择是否缓存图片
创建一个UIImage我们通常会利用两个接口去创建,一个是用 `imageNamed`,二是用 `imageWithContentsOfFile`。`imageNamed` 的优点是当加载时会缓存图片。而`imageWithContentsOfFile` 仅加载图片。