根据UIAppearance 协议参考,一个类需要符合UIAppearanceContainer 并具有标记的支持方法UI_APPEARANCE_SELECTOR
,以便外观代理正常工作。在 Apple 自己的 WWDC 2011 说明视频“自定义 UIControls 的外观”中,他们提供了使用和讨论 UIButton 和 UILabel 的示例。
这两个类都符合(通过从 UIView 继承)UIAppearance 和 UIAppaeranceContainer 协议,但它们都没有标有 的方法UI_APPEARANCE_SELECTOR
。虽然确实有效,但我的美分都花在了它们没有得到 Apple 的完全支持上,为什么在它们上使用外观代理是不安全的。
所以我有几个问题:
- 我是否错过了使 UIButton/UILabel 符合 UIAppearance 代理先决条件的内容?
- 你会争辩说它们与 UIAppearance 代理一起使用是不安全的吗?
- 如果事实证明这两个类不符合要求,那么您会在生产中在哪个对象上使用外观代理(显而易见的答案是,当然,任何使用 UIAppearance 协议标记其方法
UI_APPEARANCE_SELECTOR
并符合 UIAppearance 协议的对象)?