Cocoa/iPhone:BackgroundColor 和 Opaque 属性

Posted

技术标签:

【中文标题】Cocoa/iPhone:BackgroundColor 和 Opaque 属性【英文标题】:Cocoa/iPhone: BackgroundColor and Opaque Properties 【发布时间】:2009-02-07 23:09:33 【问题描述】:

在 Cocoa,特别是 iPhone SDK 中,opaque 属性描述为:

如果不透明,则绘制操作 假设视图填充了它的边界 并且可以更有效地绘制。这 如果不透明,结果是不可预测的 并且视图没有填满它的边界。 如果视图是,则将此属性设置为 NO 完全或部分透明。

根据我的经验,如果您有一个将 backgroundColor 设置为 [UIColor clearColor] 的视图(标签、表格单元格等),您确实不需要需要将 opaque 设置为 @987654325 @ 使其正确显示(背景清晰)。

直观地说,这样做还需要将 opaque 设置为 NO,但我从未遇到过问题。

你能把 opaque=YES 和 clearColor 混用,还是我靠借来的时间过活?它似乎没有在任何地方专门记录。

【问题讨论】:

【参考方案1】:

试试看是 iPhone 上唯一的前进方向,因为正如您所说,尽管 SDK 附带的文档量很大,但在许多情况下并不是很具体。

至于不透明,这只是对合成引擎的提示,告诉它不需要费心显示任何被不透明层覆盖的层。但是,合成是由手机上的图形芯片完成的,因此在许多情况下,不绘制部分遮蔽层的遮蔽部分并没有效率更高,这很可能是您看不到东西在时刻(即可可忽略了您尝试过的情况下的设置)。出于同样的原因,将 opaque 设置为 true 并没有看到性能提升。

所以我的建议是按照文档所说的方式坚持使用 opaque 属性,因为你冒着渲染错误的风险而没有真正的好处。

【讨论】:

以上是关于Cocoa/iPhone:BackgroundColor 和 Opaque 属性的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa iPhone SDK 开发 - 如果 UIImageView 附加了 CABasicAnimation,则 touchesBegan 方法不起作用

在 iOS 应用程序中获取和解析 JSON 的最佳方法? [关闭]

有角度的渐变层

UISearchController searchBar 不更新 barTintColor

核心数据:父上下文和变更传播

设置 cell点击 背景色