web-dev-qa-db-ja.com

グローバルな色合いを変更する-iOS 7 / iOS 8

どのように変更できますか?iOS7/iOS8のグローバルティントカラーコードで?このプロパティを使用する複数のオブジェクトを変更したいが、それぞれを変更したくないので、グローバルティントプロパティを使用したいのです。

65
elGeekalpha

アプリケーションデリゲートのUIWindowtintColorを変更するだけで、すべてのUIView子孫にデフォルトとして自動的に渡されます。

[self.window setTintColor:[UIColor greenColor]];
109
Vinzzz

[[UIView appearance] setTintColor:[UIColor greenColor]];

67
carmen_munich

グローバルティントカラーを変更するには、2つの方法があります。上で述べたように、self.window.tintColor in -application:didFinishLaunchingWithOptions:

私の意見では、よりエレガントな方法は、ストーリーボードのFile InspectorGlobal Tintを設定し、何も選択しないことです。このようにして、-application:didFinishLaunchingWithOptions:はクリーンです。

Global Tint in File Inspector

37
totocaster

ウィンドウの濃淡プロパティを設定することで、アプリ全体の濃淡の色を指定できます。これを行うには、次のようなコードを使用できます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.tintColor = [UIColor purpleColor];
    return YES;
}

Swift 2.2に更新

これは次のような場所から実行できます。

// Get app delegate
let sharedApp = UIApplication.sharedApplication()

// Set tint color
sharedApp.delegate?.window??.tintColor = UIColor.green()

または、AppDelegateからこれを実行しようとしている場合、

self.window?.tintColor = UIColor.green()
3
Tulio Troncoso

Swift 5に更新

App Delegateに書き込みます。

self.window?.tintColor = UIColor.green
1
Stanislas Heili