UILabel を拡張して、アプリ内の特定のラベル タイプのすべての用途に標準のフォントと色を適用できるようにしました。例えば。
@interface UILabelHeadingBold : UILabel
@end
AppDelegate では、このようにフォントと色を適用します
[[UILabelHeadingBold appearance] setTextColor:<some color>];
[[UILabelHeadingBold appearance] setFont:<some font>];
XIB に UILabel を追加するときに、UILabelHeadingBold 型のクラスを選択できるようになり、期待どおりに動作するようになりました。AppDelegate で指定されているように、ラベルは正しいフォントと色で表示されます。
ただし、プログラムでラベルを作成すると、たとえば.
UILabelHeadingBold *headingLabel = [[UILabelHeadingBold alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
[self.mainView addSubview:headingLabel];
UILabel に期待されるフォント/色が適用されません。これらの属性を手動で適用する必要があります。
プログラムで作成された UI 要素で UIAppearance を有効にする方法はありますか、それとも XIB 内で使用した場合にのみ機能しますか?