I have been getting unreliable results while trying to apply UIAppearance proxy styles to the UILabel class proxy. For example, the following works as I would expect:
[[UILabel appearance] setFont:[UIFont fontWithName:SOME_FONT size:SOME_SIZE]];
[[UILabel appearance] setShadowColor:[UIColor blackColor]];
Setting the textColor doesn’t work, however, this:
[[UILabel appearance] setColor:[UIColor greenColor]];
does work. Kind of. It’s somewhat unreliable and causes any instance-specific calls to setTextColor: to be ignored.
What is the correct way to apply UIAppearance styles to a UILabel?
OK, it turns out that you cannot style any UILabel properties using the
UIAppearanceproxy.While the
UILabelclass conforms to theUIAppearanceContainerprotocol, a check of UILabel.h shows that none of its properties are marked withUI_APPEARANCE_SELECTOR, the prerequisite for the use ofUIAppearance.Bugger.