我需要写:
view.opaque = NO;
对于透明backgroundColor
或小于1 alpha
的每个视图?
从文档看起来如此:
预计不透明视图将使用完全不透明的内容填充其边界 - 也就是说,内容的alpha值应为1.0。如果视图不透明并且未填充其边界或包含完全或部分透明的内容,则结果是不可预测的。如果视图完全透明或部分透明,则应始终将此属性的值设置为NO。
但事实上,我从来没有这样做,很少看到其他人这样做,而且代码运行得很好。
如果事实证明我确实需要将opaque
设置为NO
,那么现在是我挖掘所有错误代码并纠正它们的时候了。
答案 0 :(得分:6)
你应该明确地设置它,但是如果你从nib中膨胀,你可以在InterfaceBuilder / Xcode中设置属性。此属性用作图形上下文的快捷方式标志,因此不必尝试推断您的视图是否透明。
代码仍然有效,但运行时必须进行推理。此外,由于iOS使窗口的某些区域无效而不会使其他区域失效的方式,如果您的视图被标记为不透明且实际上不是,则可以不时地获得一些时髦的行为。