UIAppearance を少し使ってみましたが、うまくいきました。現在、AppDelegate ですべての外観を設定していますが、アプリが既に開始された後にカスタマイズを行う必要があります (ユーザーがログインした後のテーマ)。
AppDelegate の外に外観のものを置くことは可能ですか? もちろん、すでに試しましたが、効果はありません。全体の App-UI をリロードする必要がありますか? もしそうなら、どうすればこれを行うことができますか?
ありがとうございました!
クリス
UIAppearance を少し使ってみましたが、うまくいきました。現在、AppDelegate ですべての外観を設定していますが、アプリが既に開始された後にカスタマイズを行う必要があります (ユーザーがログインした後のテーマ)。
AppDelegate の外に外観のものを置くことは可能ですか? もちろん、すでに試しましたが、効果はありません。全体の App-UI をリロードする必要がありますか? もしそうなら、どうすればこれを行うことができますか?
ありがとうございました!
クリス
ビューの作成に xib を使用している場合は、UIControl オブジェクトを作成する前にカスタマイズを実行する必要があるため、AppDelegate 内で外観のカスタマイズを行う必要があります。AppearanceWhenContainedInを使用して、さまざまなビュー コントローラー/コンテナー用にカスタマイズできます。
コンテナ クラスのインスタンス内に含まれるクラスのインスタンス、または階層内のインスタンスの外観をカスタマイズするには、適切な外観プロキシに +appearanceWhenContainedIn: を使用します。
例えば:
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:myNavBarColor];
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class], nil] setTintColor:myPopoverNavBarColor];
ViewController クラスを使用する
[[UIStepper appearanceWhenContainedIn:[MainViewController class], nil]setTintColor:[UIColor redColor]];
[[UIStepper appearanceWhenContainedIn:[DetailViewController class], nil]setTintColor:[UIColor greenColor]];
プログラムでコントロールを作成している場合は、コントロールを作成する直前にカスタマイズしてもかまいません
[[UIStepper appearance]setTintColor:[UIColor redColor]];
UIStepper *stepper = [[UIStepper alloc]init];
[self.view addSubview: stepper];