Доступ к системе. Разрушительная красная кнопка цвета
Как получить доступ к системному красному цвету, используемому для стиля кнопки деструктивного оповещения?
Например, синий стиль по умолчанию, используемый для кнопок, доступен в Swift с помощью let systemBlueColor = view.tintColor
что соответствует UIColor(red: 0, green: 122, blue: 255, alpha: 1.0)
,
Кажется, что деструктивный красный цвет UIColor(red: 255, green: 59, blue: 48, alpha: 1.0)
но есть ли способ получить к нему доступ таким же образом, как по умолчанию view.tintColor
метод?
Я читал, что интерпретации RGB могут различаться в зависимости от устройства / операционной системы, поэтому я хотел бы получить доступ к версии цвета, независимой от устройства / операционной системы.
1 ответ
Существует недокументированный метод класса UIColor
называется _systemDestructiveTintColor
который вернет нужный вам цвет:
let red = UIColor.performSelector("_systemDestructiveTintColor").takeUnretainedValue()
Возвращает неуправляемый объект, который вы должны вызвать .takeUnretainedValue()
, так как право собственности на цвет не было передано нашему собственному объекту.
Как и в случае любого недокументированного API, вы должны соблюдать осторожность при попытке использовать этот метод:
if UIColor.respondsToSelector("_systemDestructiveTintColor") {
if let red = UIColor.performSelector("_systemDestructiveTintColor").takeUnretainedValue() as? UIColor {
// use the color
}
}
Этот и другие цвета можно найти в заголовке UIColor.