iPhone アプリのすべてのナビゲーション バーの色を緑がかった色から濃い灰色に変更する必要があります。これを行う最も簡単な方法は何ですか? 簡単な方法はありますか、それとも1つずつ行かなければなりませんか? ほぼ 100 回のビューがあり、これには非常に時間がかかります。どんな助けでも大歓迎です。
2 に答える
あなたが探してUIAppearance
いるのは、物事の将来のすべてのインスタンスを一度に変更できるようにすることです。
https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAppearance_Protocol/Reference/Reference.html#//apple_ref/doc/uid/TP40010906
次のように Appearance Proxy を使用します。
UINavigationBar *navBarAppearance = [UINavigationBar appearance];
navBarAppearance.tintColor = [UIColor darkGrayColor];
このコードをアプリケーション起動シーケンスのどこかに配置します。作成したすべてのインスタンスのUINavigationBar
色合いを設定し、既存のインスタンスについても設定します(再描画などが必要になる場合があります)。
サポートされているクラスを呼び出す[<class> appearance]
と、そのクラスの特別なインスタンスが返されます (実際には完全に異なるクラスである可能性がありますが、それは問題ではありません)。Appearance Selectors としてマークされているこのインスタンスのメソッドを呼び出すことができます。ドキュメントでは、「外観のカスタマイズ」セクションにリストされていることがよくあります。他のメソッドを呼び出すと、おそらく例外が発生します。
UINavigationBar
これは、サポートされている外観方法を含むドキュメントからの抜粋です。
バーの外観のカスタマイズ
tintColor – backgroundImageForBarMetrics: – setBackgroundImage:forBarMetrics: – titleVerticalPositionAdjustmentForBarMetrics: – setTitleVerticalPositionAdjustment:forBarMetrics: titleTextAttributes
他の多くのクラスがこのプロトコルをサポートしています。