一个UIView增加内存使用情况设置背景颜色(Setting background colour o

2019-07-30 14:30发布

我加载了一些UIViews的到的UIScrollView,我试图追查他们为什么使用这么多的内存。 使用Instruments的淘汰过程后,我发现,设置的意见的背景颜色了4倍提高内存的使用情况。

如果我不设置背景颜色的内存使用率坐在周围4.5megs。 只要我的背景色设置为任何redColor或clearColor内存使用跳转到17megs。

下面是代码:

ThumbnailView *thumbView = [[ThumbnailView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 225.0f, 320.0f)];
thumbView.tag = aCounter;
thumbView.backgroundColor = [UIColor clearColor];

有谁知道这可能是导致此?

什么我真的追求的是有背景清晰。 如果没有办法解决这个,有没有设定一个UIView的背景是明确的另一种方式?

Answer 1:

的UIView的所有实例(和从它派生的类)具有相关联的对象的CALayer(通过层属性访问),它提供了UIView的视觉外观。 该CALayer的可以有它自己的位图,它可以共享与其他的CALayer对象的位图(这是思考如何完成的),或者它可以有没有位图。

当一个UIView充当其他控件的容器,它没有与它的层相关联的位图,从而使用很少的内存。 只要你设置的背景色,即支持位图必须创建,以便有东西呈现。 如果UIView子类实现的drawRect绘制一些图形到视图,同样的事情会发生。

因为全屏幕大小视图会消耗大量的内存,当你实现一个基于UIScrollView的解决方案,你应该只加载所显示的意见和两个两侧。 不要提前创建他们的负荷。



文章来源: Setting background colour of a UIView increasing memory usage