web-dev-qa-db-fra.com

Changer la teinte globale - iOS7 / iOS8

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.

65
elGeekalpha

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]];
109
Vinzzz

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

67
carmen_munich

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.

Global Tint in File Inspector

37
totocaster

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;
}
12

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()
3
Tulio Troncoso

Mise à jour pour Swift 5

Écrivez dans le délégué de l'application:

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