首页 文章

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

提问于
浏览
199

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

enter image description here

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

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

14 回答

  • 14

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

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

    或快速

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

    十六进制颜色代码

    #007AFF
    

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

    PS . iOS,Swift

  • 227

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

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

    这给了正确的蓝色色调 UIBarButtonItem

  • 5

    迅捷4路:

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

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

    self.view.tintColor
    

    或者如果你需要CGColor:

    self.view.tintColor.CGColor
    
  • 9

    此扩展为您提供本机系统蓝色 .

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

    用法:

    myView.tintColor = .systemBlue
    

    UPD:由于记忆性能让它变得静止,感谢DmitryKozlov指出这一点 .

  • 2

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

  • 25

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

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

    根据UIButton的文档:

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

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

    self.view.tintColor
    
  • 44

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

    screenshot showing Colors window

  • 224

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

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

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

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

    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

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

相关问题