Изменение глобального оттенка цвета-iOS7/iOS8


Как мы можем изменить глобальный оттенок цвета на iOS7 / iOS8 в коде? Я хочу изменить несколько объектов, которые используют это свойство, но не изменить каждый из них, поэтому я хочу использовать глобальное свойство tint.

5 63

5 ответов:

просто изменить UIWindow ' s tintColor в делегате приложения он автоматически передается по умолчанию всем его UIView потомки.

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

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

есть два способа изменить свой глобальный оттенок цвета. Как многие упомянутые выше вы могли бы изменить self.window.tintColor на -application:didFinishLaunchingWithOptions:.

более элегантный способ, на мой взгляд, является задание Глобальные Подкраска на Файл Инспектор в раскадровке пока ничего не выбрано. Таким образом, ваш -application:didFinishLaunchingWithOptions: чище.

Global Tint in File Inspector

вы можете указать цвет оттенка для всего приложения, установив свойство оттенка окна. Для этого можно использовать следующий код:

- (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()