229

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

在此处输入图像描述

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

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

4

15 回答 15

256

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

于 2013-09-26T16:10:49.860 回答
234

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

显示颜色窗口的屏幕截图

于 2013-09-26T16:09:35.377 回答
91

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];
于 2013-11-16T07:50:10.943 回答
52

根据 UIButton 的文档:

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

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

self.view.tintColor
于 2013-11-11T00:05:38.443 回答
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;
}
于 2013-12-02T18:14:15.540 回答
22

十六进制颜色代码

#007AFF

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

附言。iOS、斯威夫特

于 2016-10-17T18:34:32.707 回答
19

快速4路:

extension UIColor {
  static let system = UIView().tintColor!
}
于 2017-05-08T23:34:23.903 回答
16

具有预定义系统颜色的本机扩展提供了您正在寻找的内容:

// System colors

extension UIColor {

   
    /* Some colors that are used by system elements and applications.
     * These return named colors whose values may vary between different contexts and releases.
     * Do not make assumptions about the color spaces or actual colors used.
     */
    
    ... 

    @available(iOS 7.0, *)
    open class var systemBlue: UIColor { get }
    ... 
}

您可以直接使用它:

myView.tintColor = .systemBlue
于 2018-06-21T09:01:35.950 回答
14

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

static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!
于 2016-01-07T22:47:00.630 回答
10

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

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

这给出了适当的蓝色调UIBarButtonItem

于 2014-12-29T20:06:28.917 回答
7

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

self.view.tintColor

或者,如果您需要 CGColor:

self.view.tintColor.CGColor
于 2014-08-04T16:24:45.560 回答
6

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

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

或迅速

self.tintColor
// or if in a ViewController
self.view.tintColor
于 2014-10-13T12:26:36.063 回答
4

请不要混淆view.tintColor或扩展,而只需使用这个:

UIColor.systemBlue
于 2020-10-11T13:18:35.283 回答
3

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

[UIColor colorWithRed:19/255.0 green:144/255.0 blue:255/255.0 alpha:1.0]
于 2013-09-26T16:20:13.967 回答
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];
于 2013-11-20T03:02:58.910 回答