web-dev-qa-db-fra.com

Comment puis-je obtenir la couleur bleue par défaut de l'iOS 7 par programmation?

Je crée des éléments personnalisés dans mon application et souhaite correspondre à l'aspect et à la convivialité du nouvel iOS. iOS 7 nous a présenté une couleur bleu clair très commune, la couleur ou la teinte par défaut de plusieurs éléments, notamment le bouton système, le contrôle segmenté, etc. Ils ont facilité la sélection de la couleur à l'aide de IB, comme illustré ici:

enter image description here

Cependant, je n'ai pas trouvé comment accéder facilement à la couleur par programmation. J'ai vérifié le documentation UIColor , et il ne semble pas exister d'accesseur pour la couleur système bleue de la classe elle-même.

Voici ma question: existe-t-il un simple accesseur pour cette couleur? [UIColor ?] ou quelque chose du genre? Sinon, quelqu'un connaît-il les valeurs RVB exactes pour cette couleur?

214
Joel H.

Utilisez self.view.tintColor depuis un contrôleur de vue ou self.tintColor depuis une sous-classe UIView.

245
Aaron Brager

Il semble que ce soit [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0].

screenshot showing Colors window

234
Greg

la couleur bleue par défaut d'iOS 7 est R:0.0 G:122.0 B:255.0

UIColor *ios7BlueColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0];
90
tarum

Selon la documentation pour UIButton:

Dans iOS v7.0, toutes les sous-classes d'UIView dérivent leur comportement pour tintColor de la classe de base. Voir la discussion sur tintColor au niveau de UIView pour plus d'informations.

En supposant que vous ne modifiez pas la teinte avant de saisir la valeur par défaut, vous pouvez utiliser:

self.view.tintColor
48
Scott Carter

Voici une méthode simple pour obtenir la couleur de teinte système par défaut:

+ (UIColor*)defaultSystemTintColor
{
   static UIColor* systemTintColor = nil;
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
      UIView* view = [[UIView alloc] init];
      systemTintColor = view.tintColor;
   });
   return systemTintColor;
}
26
Rick

Code de couleur hexadécimale

#007AFF

et vous avez besoin de cette bibliothèque https://github.com/thii/SwiftHEXColors

ps. iOS, Swift

18
Ego Slayer

Swift 4 voies:

extension UIColor {
  static let system = UIView().tintColor!
}
16
Dmitry Kozlov

Obtenez la couleur automatiquement en utilisant ce code:

static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!
14
Lukasz Czerwinski

Cette extension vous donne la couleur bleue système native.

extension UIColor {

    static var systemBlue: UIColor {
        return UIButton(type: .system).tintColor
    }

}

Usage:

myView.tintColor = .systemBlue
11

La méthode UIWindow.tintColor ne fonctionnait pas pour moi dans iOS8 (elle était toujours en noir). Je devais donc procéder comme suit:

let b = UIButton.buttonWithType(UIButtonType.System) as UIButton
var color = b.titleColorForState(.Normal)

Cela a donné la bonne teinte bleue vue dans un UIBarButtonItem

10
cscott530

Depuis iOS 7, il existe une API et vous pouvez obtenir (et définir) la couleur de teinte avec:

self.view.tintColor

Ou si vous avez besoin de CGColor:

self.view.tintColor.CGColor
7
Codecraft Studio

Dans de nombreux cas, ce dont vous avez besoin est juste

[self tintColor] 
// or if in a ViewController
[self.view tintColor]

ou pour Swift

self.tintColor
// or if in a ViewController
self.view.tintColor
6
Ali

tout en fixant la couleur, vous pouvez définir la couleur comme ceci

[UIColor colorWithRed:19/255.0 green:144/255.0 blue:255/255.0 alpha:1.0]
3
Anurag Soni

Ajouter une catégorie à UIColor de la manière suivante vous la rendra disponible chaque fois que vous en aurez besoin ou même changera sa définition dans votre code:

@interface UIColor (iOS7Colors)

+ (instancetype)iOS7blueColor;

@end

@implementation UIColor (SpecialColors)

+ (instancetype)iOS7blueColor;
{
    return [UIColor colorWithRed:0.0f green:0.22f blue:122.0/255.0 alpha:1.0f];
}

Une fois que vous avez importé la catégorie dans votre code, vous pouvez appeler la couleur en utilisant:

UIColor *myBlueColor = [UIColor iOSblueColor];
2
Renaud Boisjoly