Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 释放视图的背衬层以回收内存?_Cocoa Touch_Cocoa_Ios_Uiview_Core Animation - Fatal编程技术网

Cocoa touch 释放视图的背衬层以回收内存?

Cocoa touch 释放视图的背衬层以回收内存?,cocoa-touch,cocoa,ios,uiview,core-animation,Cocoa Touch,Cocoa,Ios,Uiview,Core Animation,我有一个自定义选项卡小部件,其中有许多视图的后台CALayer对象占用了太多内存。我正在考虑释放背景选项卡的视图,但是如果我可以要求框架释放backingcalayer(这是大部分内存的存放位置)并让它根据需要重新创建它,那么会更简单。可能吗 嵌套视图层次结构是否比更平坦的层次结构占用更多内存,因为有更多的CALayer对象,且像素基本相同?如果100 x 100视图占用x内存,是否意味着带有100x100子视图的100 x 100视图占用大约2倍的内存 为什么苹果没有采用AppKit模型,程序

我有一个自定义选项卡小部件,其中有许多视图的后台CALayer对象占用了太多内存。我正在考虑释放背景选项卡的视图,但是如果我可以要求框架释放backingcalayer(这是大部分内存的存放位置)并让它根据需要重新创建它,那么会更简单。可能吗

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


为什么苹果没有采用AppKit模型,程序员可以控制哪些视图有支持核心动画层?这将消耗更少的内存,与OS X相比,这在iOS上是稀缺的。谢谢。

所有视图都在iOS上以层为基础,您无法控制这一点

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


在iOS上支持层视图的原因是GPU承担了大部分繁重的工作。这大大降低了CPU负载,以便CPU可以用于实际工作,或者可以通过节流来节省电源。

是的,我理解这一点。我想说的是,如果给定视图的子视图没有单独设置动画或四处移动,并且都是不透明的,那么是否需要为每个视图设置单独的层,而不是仅为父视图设置一个层?无论如何,谢谢你的回答。