【发布时间】:2012-04-02 10:29:33
【问题描述】:
根据UIAppearance protocol reference,一个类需要符合UIAppearanceContainer 并且支持带有UI_APPEARANCE_SELECTOR 标记的方法,以便外观代理正常工作。在 Apple 自己的 WWDC 2011 指导视频"Customizing the appearance of UIControls" 中,他们提供了使用和讨论 UIButton 和 UILabel 的示例。
这两个类都符合(通过从 UIView 继承)UIAppearance 和 UIAppaeranceContainer 协议,但没有一个具有标有 UI_APPEARANCE_SELECTOR 的方法。虽然确实有效,但我的钱花在了它们没有得到 Apple 的完全支持上,为什么在它们上使用外观代理是不安全的。
所以我有几个问题:
- 我是否遗漏了一些使 UIButton/UILabel 符合 UIAppearance 代理先决条件的内容?
- 您是否认为它们与 UIAppearance 代理一起使用不安全?
- 如果事实证明这两个类不符合,您将在生产中使用哪个对象的外观代理(显而易见的答案是,当然,任何使用
UI_APPEARANCE_SELECTOR标记其方法并符合UIAppearance 协议)?
【问题讨论】:
-
我尝试使用 UIAppearance 在课堂上设置 UILabel 阴影。它工作正常。我更喜欢子类化标签。
-
是的,许多设置可以使用这些类的外观代理进行设置。问题是缺乏官方一致性是否意味着它们也可能会因任何操作系统更新而中断......
-
说的是真的。这就是为什么我更喜欢子类化。
标签: ios controls customization appearance