gpt4 book ai didi

iphone - UIView 不透明属性

转载 作者:太空狗 更新时间:2023-10-30 03:14:26 24 4
gpt4 key购买 nike

UIView 的opaque 属性默认总是设置为“YES”。但是 UIView 类引用说明了这一点:

An opaque view is expected to fill its bounds with entirely opaque content—that is, the content should have an alpha value of 1.0. If the view is opaque and either does not fill its bounds or contains wholly or partially transparent content, the results are unpredictable.

由于更改 View 的 alpha 是很常见的,尤其是在过渡或动画期间,因此上面的语句意味着您必须始终手动将 opaque 设置为 NO 如果您还要更改 alpha 属性。

但我从来没有手动调整过不透明,也没有任何明显的症状。做这个考虑有多大必要?

最佳答案

答案是 iOS 足够聪明,可以识别如果您的 View 的 alpha 小于 1,它需要在您的 View 后面绘制内容,而不管您的 View 的不透明属性。

回应评论:根据我有限的实验,我认为 View 的 opaque 属性没有任何效果。 (我认为文档是错误的。) View 层的 opaque 属性确实有作用:它控制传递给 drawRect:CGContext 是否具有一个阿尔法 channel 。如果图层的 opaque 属性为 YES,则上下文没有 alpha channel (并且被视为每个像素都具有 1.0 的 alpha)。

更改 View 的 opaque 属性对图层的 opaque 属性没有影响。这不同于(例如) View 的 alpha 属性,它只是层的 opacity 属性的包装器。

理论上,在记录了 opaque 属性允许他们优化绘图后,Apple 可以在未来实现该优化。实际上,这样做可能会破坏很多应用程序,因此他们可能不会将此类更改应用于链接到旧 SDK 的应用程序。 (他们有能力使 UIKit 的行为根据应用链接的版本而有所不同。)

关于iphone - UIView 不透明属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com