13

UIAppearanceルールが新しいViewControllerに正確に適用されるのはいつですか?

私はいくつかのグローバルルールを作成し、アプリデリゲートでそれらを呼び出します。そうすれば、すべてのUIButtonが同じように見えます。しかし、今度は1つのUIButtonの外観だけを変更したいと思います。コードを入れて背景を削除しようとしましたが、機能して- (void)viewDidLoadいません-UIAppearanceルールはまだ適用されていません。あるViewControllerでは、変更コードを中に入れ- (void)viewWillLayoutSubviewsて完全に機能しましたが、別のViewControllerでは機能しません(コードは同じです)。

UIAppearanceルールをオーバーライドするのはどこで安全ですか?

4

2 に答える 2

14

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

于 2012-11-10T14:25:53.903 に答える
1

特定のボタンをカスタマイズする場合は、次のいずれかを行う必要があります。

  1. ボタン インスタンスのプロパティを直接変更し、クラスの外観設定には触れない、または

  2. appearanceWhenContainedIn:以下のような方法を使用します。

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

そうすれば、特定のボタンに外観プロキシを引き続き使用でき (特定のビューに含まれていることがわかっている場合)、一般的な外観設定を変更する必要はありません。

于 2012-10-31T09:46:29.673 に答える