我正在我的应用中创建自定义元素,并希望与新iOS的外观相匹配。 iOS 7向我们介绍了一种非常常见的浅蓝色,几种元素的默认颜色或色调,包括系统按钮,分段控制等。它们使用IB轻松选择颜色,如下所示:
但是,我还没有找到如何以编程方式轻松访问颜色。我检查了UIColor documentation,并且似乎没有任何类蓝色系统颜色的访问器。
这是我的问题:这种颜色是否存在简单的存取器? [UIColor ?]
或类似的东西?如果没有,是否有人知道该颜色的确切 RGB值?
答案 0 :(得分:240)
使用视图控制器中的self.view.tintColor
或self.tintColor
子类中的UIView
。
答案 1 :(得分:234)
似乎是[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]
。
答案 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)
答案 6 :(得分:14)
使用以下代码自动获取颜色:
static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!
答案 7 :(得分:14)
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