UIButton和外观的API – 支持与否?

根据UIAppearance协议的引用,一个类需要符合UIAppearanceContainer 并支持标记为UI_APPEARANCE_SELECTOR方法,以使外观代理正常工作。 在苹果自己的指导video从WWDC 2011, “定制UIControls的外观” ,他们提供的例子,他们使用和讨论,UIButton和UILabel。

这两个类都符合UIAppearance和UIAppaeranceContainer协议(通过inheritanceUIView), 但是它们没有标记为UI_APPEARANCE_SELECTOR方法。 虽然做的工作,但我的钱花在他们没有完全支持的苹果,为什么是不安全的使用外观代理对他们。

所以我有几个问题:

  • 我错过了什么使UIButton / UILabel符合UIAppearance代理的先决条件?
  • 你会认为与UIAppearance代理一起使用是不安全的吗?
  • 如果事实certificate这两个类不符合(当然,显而易见的答案是使用UI_APPEARANCE_SELECTOR标记其方法并符合UIAppearance协议的任何对象),那么您将在生产中使用外观代理?

看起来有人在这个问题上提出了一个雷达 ,但是他提到了通过外观代理尝试使用方法时抛出exception。 他们为我工作,并且我同意WWDC会话中的引用使得有人可能忘记标注标题。