我怎样才能以编程方式获得iOS 7的默认蓝色?
我在我的应用程序中创build自定义元素,并希望匹配新的iOS的外观和感觉。 iOS 7向我们介绍了一种非常普通的浅蓝色,几种元素的默认颜色或色调,包括系统button,分段控制等等。它们使得使用IB来select颜色变得容易,如下所示:

但是,我还没有find如何以编程方式轻松访问颜色。 我检查了UIColor文档 ,似乎没有任何访问者在类本身的蓝色系统颜色。
这是我的问题:这个颜色有一个简单的存取器吗?  [UIColor ?]或类似的东西? 如果没有,有人知道这种颜色的确切的RGB值 ? 
 从视图控制器使用self.tintColor ,或从UIView子类使用self.tintColor 。 
 它似乎是[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0] 。 

  iOS 7的默认蓝色是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]; 
根据UIButton的文档:
在iOS v7.0中,UIView的所有子类都从基类派生tintColor的行为。 有关更多信息,请参阅UIView级别的tintColor的讨论。
假设您在获取默认值之前不更改tintColor,可以使用:
 self.view.tintColor 
这里是一个简单的方法来获得默认的系统色调的颜色:
 + (UIColor*)defaultSystemTintColor { static UIColor* systemTintColor = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ UIView* view = [[UIView alloc] init]; systemTintColor = view.tintColor; }); return systemTintColor; } 
  iOS8中的UIWindow.tintColor方法不适合我(它仍然是黑色的),所以我必须这样做: 
 let b = UIButton.buttonWithType(UIButtonType.System) as UIButton var color = b.titleColorForState(.Normal) 
 这给了在UIBarButtonItem看到的正确的蓝色色调 
使用此代码自动获取颜色:
 static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)! 
在许多情况下,你需要的只是
 [self tintColor] // or if in a ViewController [self.view tintColor] 
或迅速
 self.tintColor // or if in a ViewController self.view.tintColor 
从iOS 7有一个API,你可以得到(和设置)色调的颜色:
 self.view.tintColor 
或者如果您需要CGColor:
 self.view.tintColor.CGColor 
同时设置颜色可以像这样设置颜色
 [UIColor colorWithRed:19/255.0 green:144/255.0 blue:255/255.0 alpha:1.0] 
通过以下方式将类别添加到UIColor中,您可以随时使用它,甚至可以在代码中更改其定义:
 @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]; } 
一旦在代码中导入类别,您可以使用以下命令调用颜色:
 UIColor *myBlueColor = [UIColor iOSblueColor]; 
swift 3.0方式:
 private var systemColor: UIColor = UIView().tintColor extension UIColor { static var system: UIColor { return systemColor } }