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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Более элегантным способом, на мой взгляд, является установка Global Tint в File Inspector на вашей раскадровке, пока ничего не выбрано. Таким образом, ваш -application:didFinishLaunchingWithOptions: более чистый.

Глобальный оттенок в инспекторе файлов

Ответ 4

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

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

Ответ 5

Обновлено для 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()