joh*_*ers 19 iphone objective-c uiview ipad
opaque
默认情况下,UIView 的属性始终设置为"YES".但是UIView类引用说明了这一点:
预计不透明视图将使用完全不透明的内容填充其边界 - 也就是说,内容的alpha值应为1.0.如果视图不透明并且未填充其边界或包含完全或部分透明的内容,则结果是不可预测的.
由于更改alpha
视图非常常见,尤其是在转换或动画期间,因此上述语句意味着如果您要更改属性opaque
,NO
则必须始终手动设置alpha
.
但我从未手动调整过opaque
,也没有任何明显的症状.有必要考虑这个问题吗?
rob*_*off 14
答案是iOS足够聪明,可以识别出如果您的视图alpha
小于1,则需要在视图后面绘制内容,而不管视图的opaque
属性如何.
回应评论:从我有限的实验中,我不认为视图的opaque
属性有任何影响.(我认为文档是错误的.)视图的图层opaque
属性确实有效:它控制CGContext
传递的是否drawRect:
具有alpha通道.如果图层的opaque
属性为YES,则上下文没有alpha通道(并且被视为每个像素的alpha值为1.0).
更改视图的opaque
属性对图层的opaque
属性没有影响.这与(例如)视图的alpha
属性不同,后者只是图层opacity
属性的包装.
理论上,已经证明该opaque
属性允许他们优化绘图,Apple可以在未来实现该优化.在实践中,这样做可能会破坏很多应用程序,因此他们可能不会对与旧SDK相关联的应用程序进行此类更改.(他们有能力使UIKit的行为有所不同,具体取决于应用与哪个版本相关联.)
归档时间: |
|
查看次数: |
9371 次 |
最近记录: |