相关疑难解决方法(0)

UIView的opaque属性值是YES,与backgroundColor属性冲突,值为[UIColor clearColor]吗?

比如代码:

view.opaque = YES;
Run Code Online (Sandbox Code Playgroud)

view.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这个呢?

编辑:

如文件所示:

尽可能将视图声明为不透明

UIKit使用每个视图的opaque属性来确定视图是否可以优化合成操作.对于自定义视图,将此属性的值设置为YES会告诉UIKit它不需要在视图后面呈现任何内容.较少的渲染可以提高绘图代码的性能,并且通常会受到鼓励.当然,如果将opaque属性设置为YES,则视图必须使用完全不透明的内容完全填充其边界矩形.

opaque属性用于确定视图是否可以优化合成操作.

所以问题是:

如果我设定view.opaque = YES并且view.backgroundColor = [UIColor clearColor],前者提高了性能,后者怎么样?

uikit uiview ios

11
推荐指数
2
解决办法
6089
查看次数

10
推荐指数
2
解决办法
8064
查看次数

Cocoa/iPhone:BackgroundColor和Opaque Properties

在Cocoa中,特别是iPhone SDK,该opaque属性被描述为:

如果不透明,则绘制操作假定视图填充其边界并且可以更有效地绘制.如果不透明且视图未填充其边界,则结果是不可预测的.如果视图完全或部分透明,请将此属性设置为NO.

根据我的经验,如果你有一个视图(标签,表格单元格,等)backgroundColor设置为[UIColor clearColor],你就不会需要设置opaqueNO它能够正确显示(有明显的背景).

直觉上,这样做也需要将NO设置为不透明,但我从来没有遇到过问题.

你可以混合opaque = YES和clearColor,还是我靠借来的时间生活?它似乎没有具体记录在任何地方.

cocoa cocoa-touch

6
推荐指数
1
解决办法
3662
查看次数

标签 统计

ios ×2

uiview ×2

alpha ×1

cocoa ×1

cocoa-touch ×1

performance ×1

uikit ×1