私たちは、アプリケーションで指定されたラベルタイプのすべての用途に標準のフォントと色を適用できるようにUILabelを拡張しました。例えば。私たちのAppDelegateでUIAppearanceはプログラムで作成されたUILabelsには適用されません
@interface UILabelHeadingBold : UILabel
@end
は、私たちはXIB年代にUILabelを追加するとき、私たちは今のタイプUILabelHeadingBoldであるようにクラスを選択することができ、この
[[UILabelHeadingBold appearance] setTextColor:<some color>];
[[UILabelHeadingBold appearance] setFont:<some font>];
のようなフォントや色を適用し、期待どおりに動作します。ラベルは、AppDelegateで指定されている正しいフォントと色で表示されます。
ただし、ラベルをプログラムで作成すると、
UILabelHeadingBold *headingLabel = [[UILabelHeadingBold alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
[self.mainView addSubview:headingLabel];
UILabelは、期待されるフォント/色が適用されません。これらの属性を手動で適用する必要があります。
UIAppearanceをプログラムによって作成されたUI要素に反映させる方法はありますか、それともXIB内で使用する場合にのみ機能しますか?アップルのドキュメントから
が、結果は矛盾していますiOS 5では動作が異なり、まあ、あなたも知っています。ですから、UILabelの –
+1をカスタマイズするために 'UIAppearance'を使用しないでください。私は矛盾した結果を得る唯一の人ではありません。 +1、私が今使っているrobert.wijasの解決策 - そしてすべては問題ありません。 – anneblue