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 的最佳方法? [关闭]