比如代码:
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],前者提高了性能,后者怎么样?
例如:
我将UIView的alpha属性设置为alpha = 0,这是否意味着它的opaque属性被视为opaque=YES?
如何opaque,alpha并backgroundColor影响性能?
还要别的吗?...
在Cocoa中,特别是iPhone SDK,该opaque属性被描述为:
如果不透明,则绘制操作假定视图填充其边界并且可以更有效地绘制.如果不透明且视图未填充其边界,则结果是不可预测的.如果视图完全或部分透明,请将此属性设置为NO.
根据我的经验,如果你有一个视图(标签,表格单元格,等)backgroundColor设置为[UIColor clearColor],你就不会需要设置opaque到NO它能够正确显示(有明显的背景).
直觉上,这样做也需要将NO设置为不透明,但我从来没有遇到过问题.
你可以混合opaque = YES和clearColor,还是我靠借来的时间生活?它似乎没有具体记录在任何地方.