如何以编程方式获取iOS 7默认蓝色?

时间:2013-09-26 15:51:21

标签: ios colors ios7 uicolor

我正在我的应用中创建自定义元素,并希望与新iOS的外观相匹配。 iOS 7向我们介绍了一种非常常见的浅蓝色,几种元素的默认颜色或色调,包括系统按钮,分段控制等。它们使用IB轻松选择颜色,如下所示:

enter image description here

但是,我还没有找到如何以编程方式轻松访问颜色。我检查了UIColor documentation,并且似乎没有任何类蓝色系统颜色的访问器。

这是我的问题:这种颜色是否存在简单的存取器? [UIColor ?]或类似的东西?如果没有,是否有人知道该颜色的确切 RGB值

15 个答案:

答案 0 :(得分:240)

使用视图控制器中的self.view.tintColorself.tintColor子类中的UIView

答案 1 :(得分:234)

似乎是[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]

screenshot showing Colors window

答案 2 :(得分:90)

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

答案 3 :(得分:46)

根据UIButton的文件:

  

在iOS v7.0中,UIView的所有子类都从基类派生出tintColor的行为。有关更多信息,请参阅UIView级别的tintColor讨论。

假设您在获取默认值之前未更改tintColor,则可以使用:

self.view.tintColor

答案 4 :(得分:26)

以下是获取默认系统色调颜色的简单方法:

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

答案 5 :(得分:15)

十六进制颜色代码

#007AFF

你需要这个图书馆 https://github.com/thii/SwiftHEXColors

PS。 iOS,Swift

答案 6 :(得分:14)

使用以下代码自动获取颜色:

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

答案 7 :(得分:14)

快速4方式:

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

答案 8 :(得分:10)

在iOS8中UIWindow.tintColor方法对我不起作用(它仍然是黑色的),所以我必须这样做:

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

这给出了UIBarButtonItem

中看到的正确蓝色色调

答案 9 :(得分:8)

此扩展程序为您提供本机系统蓝色。

extension UIColor {

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

}

用法:

myView.tintColor = .systemBlue

UPD:由于内存性能而使其成为静态,这要感谢DmitryKozlov指出。

答案 10 :(得分:7)

从iOS 7开始,有一个API,您可以使用以下颜色获取(并设置)色调颜色:

self.view.tintColor

或者如果您需要CGColor:

self.view.tintColor.CGColor

答案 11 :(得分:6)

在许多情况下,您需要的只是

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

或swift

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

答案 12 :(得分:3)

设置颜色时,您可以像这样设置颜色

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

答案 13 :(得分:2)

通过以下方式向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];

答案 14 :(得分:1)

请不要混淆view.tintColor或扩展名,而只需使用以下内容:

UIColor.systemBlue