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

时间:2011-08-18 05:11:08

标签: ios uiview uikit

如代码:

view.opaque = YES;

view.backgroundColor = [UIColor clearColor];
是谁能解释一下这个?

修改

如文件所示:

  

Declare Views as Opaque Whenever Possible

     

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

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

所以问题是:

如果我设置view.opaque = YESview.backgroundColor = [UIColor clearColor],前者会提高效果,后者会怎样?

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

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