我怎样才能以编程方式获得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; } 

hex颜色代码

 #007AFF 

你需要这个库文件https://github.com/thii/SwiftHEXColors

PS。 iOS,Swift

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