2012-07-13 5 views
13

UIAppearanceのルールが新しいView Controllerに適用されると、私は迷っていますか?UIAppearanceプロキシルールはいつ新しいView Controllerに適用されますか?

私はいくつかのグローバルルールを作成しました。私はそれらをアプリケーション代理人で呼び出します。そうすれば、すべてのUIButtonが同じように見えます。しかし今、私は1つのUIButtonの外観を修正したい。私は- (void)viewDidLoadの中に背景を取り除くためにコードを入れてみましたが、うまくいきません - UIAppearanceのルールはまだ適用されていません。 1つのViewControllerで、私は- (void)viewWillLayoutSubviewsの内部に修正コードを入れましたが、それは完全に機能しましたが、別のViewControllerでは動作しません(コードは同じです)。

UIA出現ルールをオーバーライドするのは安全でしょうか?

答えて

13

UIAppearanceを導入した2011年WWDCビデオによると、カスタマイズは、-layoutSubviewsがビューで呼び出される直前に適用されます。

1

することは、あなたがすべき1つの特定のボタンをカスタマイズするために探している場合は、次のいずれか

  1. アルター直接ボタンインスタンスのプロパティ、および外観クラスの設定、または

  2. に手を触れないで以下のようなappearanceWhenContainedIn:メソッドを使用します。

    [[UIButton appearanceWhenContainedIn:[CustomView class], nil] 
    setBackgroundImage:myButtonImage 
          forState:UIControlStateNormal]; 
    

そうすれば、特定のボタンに外観プロキシを使用することもできます(特定のビューに含まれていることがわかっている場合)。一般的な外観設定を変更しないでください。

関連する問題