Я создаю пользовательские элементы в своем приложении и хочу соответствовать внешнему виду новой iOS. iOS 7 представила нам очень распространенный светло-синий цвет, цвет по умолчанию или оттенок для нескольких элементов, включая системную кнопку, сегментированный элемент управления и т. д. Они упростили выбор цвета с помощью IB, как показано здесь:
Тем не менее, я не нашел, как легко получить доступ к цвету программно. Я проверил документацию по UIColor , и в самом классе, похоже, нет никакого средства доступа к синему системному цвету.
Вот мой вопрос: существует ли простой аксессуар для этого цвета? [UIColor ?]
или как то так? Если нет, знает ли кто-нибудь точные значения RGB для этого цвета?
UIView().tintColor
, но на самом деле вы не можете. Не уверен, в какой момент UIView получит цветовой оттенок ...UIWindow
или, может быть, его корневой вид имеет оригинальную версию. Представления наследуют свой оттенок цвета от более высоких представлений в цепочке респондента, но в вашем примере новое представление не имеет суперпредставления.self.view.tintColor
изнутриUIViewController.viewDidLoad()
дает право синего цвета.Это , как представляется
[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]
.источник
UIColor(red: 0.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0)
iOS 7 по умолчанию синий цвет
R:0.0 G:122.0 B:255.0
источник
0x007aff
Согласно документации для UIButton:
Предполагая, что вы не меняете tintColor до получения значения по умолчанию, вы можете использовать:
источник
sharedApplication()
не имеетkeyWindow
сtintColor
Вот простой способ получить цветовой оттенок системы по умолчанию:
источник
dispatch_once
довольно низки и являются единственной проверкой в общем случае.UIColor
на нескольких потоков. Упаковка в негоdispatch_once
позволяет безопасно получить этот цвет на любой нити. И опять же, накладные расходы очень низкие.Шестнадцатеричный цветовой код
и вам нужна эта библиотека https://github.com/thii/SwiftHEXColors
пс. iOS, Swift
источник
Свифт 4 пути:
источник
Это расширение дает вам родную систему синего цвета.
ОБНОВИТЬ
Пожалуйста, забудьте о том, что я написал выше, только что понял - есть собственное расширение с предопределенными системными цветами, которые мы искали, включая системный синий :
Вы можете использовать его напрямую:
источник
static let system = UIView().tintColor!
что все еще намного лучше, чем ваш вариант.Получить цвет автоматически с помощью этого кода:
источник
UIWindow.tintColor
Метод не работает для меня в iOS8 (он был еще черный), так что я должен был сделать это:Это дало правильный синий оттенок, видимый в
UIBarButtonItem
источник
В iOS 7 есть API, и вы можете получить (и установить) цвет оттенка с помощью:
Или, если вам нужен CGColor:
источник
Во многих случаях вам нужно просто
или для быстрого
источник
при настройке цвета вы можете установить цвет, как это
источник
/255.0
с каждымrgb
значением?Добавление категории в UIColor следующим образом сделает ее доступной для вас в любое время или даже изменит ее определение в вашем коде:
После того, как вы импортируете категорию в свой код, вы можете вызвать цвет с помощью:
источник
blue
доred
в+ (instancetype)iOS7redColor;