为什么不透明的视图在iPhone上更有效?

时间:2011-02-09 09:54:25

标签: iphone

我试图找到其他原因,为什么不透明视图优于透明视图。然而,我提出的唯一明智的理由是,不透明的背后的视图不需要在那个地方绘制其内容。

这是一个错误的假设,还有其他充分的理由吗?

感谢。

2 个答案:

答案 0 :(得分:3)

这是正确的假设。直接来自Apple文档:

  

opaque

     

确定的布尔值   接收器是否不透明。

     

@property(nonatomic, getter=isOpaque) BOOL opaque

     

<强>讨论

     

此属性提供绘图系统的提示   至于如何对待观点。如果   设置为YES,绘图系统处理   视图完全不透明,允许   绘图系统优化一些   绘图操作和改进   性能。如果设置为NO,则绘图   系统正常组合视图   与其他内容。默认值   这个属性是YES

     

预计不透明视图将填补其空白   完全不透明的边界   内容 - 即内容应该   具有1.0的alpha值。如果   视图是不透明的,也不是   填写其边界或包含完整或   部分透明的内容,   结果是不可预测的。你应该   始终设置此属性的值   如果视图完全或是,则NO   部分透明。

答案 1 :(得分:3)

除了能够避免绘制背景视图外,还有一些其他原因,它更快,与合成相关:

1)无需混合前景和背景视图,从而节省了对每个像素进行的一些数学处理

2)如果视图移动,则可以简单地将其像素布置到新位置,而不进行任何重绘。这是一项用于滚动性能的巨大的协议,即使在桌面计算机上也是如此,更不用说移动设备了。