Changer la couleur de la teinte globale – iOS7 / iOS8

Comment pouvons-nous changer la couleur de teinte globale sur iOS7 / iOS8 par code? Je souhaite modifier plusieurs objects qui utilisent cette propriété, mais ne pas les modifier, c’est pourquoi je souhaite utiliser la propriété de teinte globale.

Changez simplement la UIWindow d’ tintColor dans votre délégué d’application, elle est automatiquement transmise par défaut à tous ses descendants UIView .

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

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

Il existe deux façons de modifier votre couleur de teinte globale. Comme beaucoup mentionné ci-dessus, vous pouvez changer self.window.tintColor dans -application:didFinishLaunchingWithOptions:

À mon avis, une manière plus élégante consiste à définir la teinte globale dans l’ inspecteur de fichiers dans votre storyboard alors que rien n’est sélectionné. De cette façon, votre -application:didFinishLaunchingWithOptions: est plus propre.

Teinte globale dans l'inspecteur de fichiers

Vous pouvez spécifier une couleur de teinte pour l’application entière en définissant la propriété de teinte de la fenêtre. Pour ce faire, vous pouvez utiliser un code similaire à celui-ci:

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

Mis à jour pour Swift 2.2

Vous pouvez le faire de n’importe où comme ceci:

 // Get app delegate let sharedApp = UIApplication.sharedApplication() // Set tint color sharedApp.delegate?.window??.tintColor = UIColor.green() 

Ou si vous essayez de faire cela depuis AppDelegate,

 //self.window?.tintColor = UIColor.green()