访问系统。具有破坏性的红色button颜色
如何访问用于破坏性警报button样式的系统红色?
例如,用于button的默认样式蓝色可以通过let systemBlueColor = view.tintColor
(对应于UIColor(red: 0, green: 122, blue: 255, alpha: 1.0)
在Swift中访问。
破坏性的红色似乎是由UIColor(red: 255, green: 59, blue: 48, alpha: 1.0)
但有什么办法以类似的方式访问它的默认view.tintColor
方法?
我已经读过RGB解释可以在设备/操作系统上有所不同,所以我想访问设备/操作系统的独立版本的颜色。
在UIColor
上有一个名为_systemDestructiveTintColor
的未_systemDestructiveTintColor
类方法,它将返回你需要的颜色:
let red = UIColor.performSelector("_systemDestructiveTintColor").takeUnretainedValue()
它返回一个非托pipe对象,你必须调用.takeUnretainedValue()
,因为颜色所有权并没有传递给我们自己的对象。
与任何未公开的API一样,尝试使用此方法时应谨慎:
if UIColor.respondsToSelector("_systemDestructiveTintColor") { if let red = UIColor.performSelector("_systemDestructiveTintColor").takeUnretainedValue() as? UIColor { // use the color } }
这个和其他颜色可以在UIColor 标题中find。