最近我一直在尝试用不同的技术在 iOS 上绘制 2D 精灵(CoreAnimation、UIViews、CGContext 和 Open GL ES)。我从 CoreAnimation 获得的最佳性能与开发时间,所以我会坚持下去(暂时)。
为了显示位图,我使用了 CALayers——它工作得很好,并且不比 Open GL 慢多少。有多种模式经常重复(这是平台游戏的典型特征)。出于节省内存的原因,我想为多个 CALayer 重用存储的图像。
我可以这样做吗?如何?我想像:
- 将位图以任何形式(UIImage?)存储在内存中
- 从 UIImage 获取 CGImageRef
- 将 CGImageRef 应用于应显示该位图的每个 CALayer
这实际上是否只存储指向每个图层的位图的指针,或者“Apple-magic”是否为每个 CALayer 创建位图的副本?
谢谢你。