title: UIButton and Appearance API - supported or not?
body: <p>According to the <a href="http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAppearance_Protocol/Reference/Reference.html" rel="nofollow">UIAppearance protocol reference</a> a class need to conform to the <a href="http://developer.apple.com/library/ios/#recipes/UIAppearanceContainer_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIAppearanceContainer" rel="nofollow">UIAppearanceContainer</a> <strong>and</strong> have supported methods marked with <code>UI_APPEARANCE_SELECTOR</code> in order for the appearance proxy to work properly. In Apples own instruction video from WWDC 2011, <a href="https://developer.apple.com/videos/wwdc/2011/" rel="nofollow">"Customizing the appearance of UIControls"</a>, they provide examples where they use, and discuss, both UIButton and UILabel.</p>
  
  <p>Both of these classes conform (via inheritance from UIView) to the UIAppearance and UIAppaeranceContainer Protocols, <strong>but none of them</strong> have methods marked with <code>UI_APPEARANCE_SELECTOR</code>. The do work though, but my cents are spent on them not being fully supported by Apple, why it would be unsafe to use the appearance proxy on them.</p>
  
  <p>So I have a few questions:</p>
  
  <ul>
  <li>Have I missed something that makes UIButton/UILabel conform to the UIAppearance proxy prerequisites?</li>
  <li>Would you argue that they are unsafe to use with the UIAppearance proxy?</li>
  <li>On what object would you use the appearance proxy in production, if it turns out that these two classes don't conform (the obvious answer being, of course, any object that mark their methods with <code>UI_APPEARANCE_SELECTOR</code> and conform to the UIAppearance protocols)?</li>
  </ul>