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


比如代码:

view.opaque = YES;

view.backgroundColor = [UIColor clearColor];

谁能解释一下这个呢?

编辑:

如文件所示:

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

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

不透明 property用于确定视图是否可以优化合成操作。

所以问题是:

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


12702
2017-08-18 05:11


起源



答案:


不,它不应该。它应该行动清楚。颜色清晰是完全不透明的,如果这甚至是有意义的。如果您更改其alpha,它将不会显示黑色或白色或其他任何内容。很明显。


2
2017-08-18 06:36



我想知道你想说什么。你能解释一下吗?清除==完全透明,对吧? - hfossli
哇,你刚刚摆脱了这个错误(在我脑中)! - hinterbu


答案:


不,它不应该。它应该行动清楚。颜色清晰是完全不透明的,如果这甚至是有意义的。如果您更改其alpha,它将不会显示黑色或白色或其他任何内容。很明显。


2
2017-08-18 06:36



我想知道你想说什么。你能解释一下吗?清除==完全透明,对吧? - hfossli
哇,你刚刚摆脱了这个错误(在我脑中)! - hinterbu


opaque标志用作渲染的优化。如果在视图不应该是不透明的情况下将其设置为YES,那么如果您确实希望通过视图显示内容,则可能会出现意外渲染。

我的理解是有时会检查opaque标志以查看是否应该检查alpha值。


8
2017-08-18 08:26