Comment pouvons-nous changer la couleur de teinte globale sur iOS7/iOS8 par code? Je souhaite modifier plusieurs objets utilisant cette propriété, mais pas chacun, c'est pourquoi je souhaite utiliser la propriété de teinte globale.
Changez simplement le UIWindow
'tintColor
dans votre délégué d'application, il est automatiquement transmis par défaut à tous ses UIView
descendants.
[self.window setTintColor:[UIColor greenColor]];
[[UIView appearance] setTintColor:[UIColor greenColor]];
Il y a deux façons de changer votre couleur de teinte globale. Comme mentionné ci-dessus, vous pouvez changer self.window.tintColor
dans -application:didFinishLaunchingWithOptions:
.
Une manière plus élégante, à mon avis, est de définir la teinte globale dans Inspecteur de fichier dans votre Storyboard alors que rien n'est sélectionné. De cette façon, votre -application:didFinishLaunchingWithOptions:
est plus propre.
Vous pouvez spécifier une couleur de teinte pour l’ensemble de l’application 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;
}
Mise à jour pour Swift 2.2
Vous pouvez le faire depuis 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()
Mise à jour pour Swift 5
Écrivez dans le délégué de l'application:
self.window?.tintColor = UIColor.green