释放后备层以获取回收内存的视图?

时间:2011-05-30 15:23:07

标签: cocoa-touch cocoa ios uiview core-animation

我有一个自定义标签小部件,有很多视图,其后备CALayer对象占用了太多内存。我正在考虑发布背景选项卡的视图,但如果我可以让框架释放支持CALayer(这是大部分内存的去向)并让它按需重新创建它会更简单。这可能吗?

嵌套视图层次结构是否比更平坦的视图层次结构消耗更多内存,因为有更多CALayer对象,大多数像素相同?如果100 x 100视图占用X内存,是否意味着100 x 100视图和100x100子视图大约需要2倍?

为什么Apple没有使用AppKit模型,程序员控制哪些视图支持Core Animation图层?这将消耗更少的内存,这在iOS上与OS X相比很少。谢谢。

1 个答案:

答案 0 :(得分:0)

所有视图都在iOS上进行图层备份,您无法控制它。

您应该只是释放非活动视图并根据需要重新加载它们。

视图在iOS上支持图层的原因是GPU完成了大部分繁重的工作。这大大减少了CPU负载,因此CPU可用于实际工作或节流以节省电力。