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 次 |
| 最近记录: |