Ответ 1
Используйте self.view.tintColor
с контроллера вида или self.tintColor
из подкласса UIView
.
Я создаю пользовательские элементы в своем приложении и хочу соответствовать внешнему виду нового iOS. iOS 7 представила нам очень распространенный светло-голубой цвет, цвет или оттенок по умолчанию для нескольких элементов, включая кнопку системы, сегментированный элемент управления и т.д. Они упростили выбор цвета с использованием IB, как показано здесь:
Однако я не нашел, как легко получить доступ к цвету программно. Я проверил документацию UIColor, и, похоже, не существует какого-либо аксессуара для синего цвета системы в самом классе.
Здесь мой вопрос: существует ли простой аксессуар для этого цвета? [UIColor ?]
или что-то в этом роде? Если нет, кто-то знает точные значения RGB для этого цвета?
Используйте self.view.tintColor
с контроллера вида или self.tintColor
из подкласса UIView
.
Кажется, это [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]
.
синий цвет 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];
В соответствии с документацией для UIButton:
В iOS v7.0 все подклассы UIView получают свое поведение для tintColor из базового класса. См. Обсуждение tintColor на уровне UIView для получения дополнительной информации.
Предполагая, что вы не изменяете tintColor, прежде чем брать значение по умолчанию, вы можете использовать:
self.view.tintColor
Вот простой способ получения цвета оттенков системы по умолчанию:
+ (UIColor*)defaultSystemTintColor
{
static UIColor* systemTintColor = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UIView* view = [[UIView alloc] init];
systemTintColor = view.tintColor;
});
return systemTintColor;
}
Цвет шестнадцатеричного кода
#007AFF
и вам нужна эта библиотека https://github.com/thii/SwiftHEXColors
пс. iOS, Swift
Метод UIWindow.tintColor
не работал у меня в iOS8 (он все еще был черным), поэтому я должен был сделать это:
let b = UIButton.buttonWithType(UIButtonType.System) as UIButton
var color = b.titleColorForState(.Normal)
Это дало правильный синий оттенок, наблюдаемый в UIBarButtonItem
Получить цвет автоматически, используя этот код:
static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!
Из iOS 7 существует API, и вы можете получить (и установить) цвет оттенка с помощью:
self.view.tintColor
Или, если вам нужен CGColor:
self.view.tintColor.CGColor
Во многих случаях вам нужно просто
[self tintColor]
// or if in a ViewController
[self.view tintColor]
или для быстрого
self.tintColor
// or if in a ViewController
self.view.tintColor
swift 4 way:
extension UIColor {
static let system = UIView().tintColor!
}
при настройке цвета вы можете установить цвет следующим образом
[UIColor colorWithRed:19/255.0 green:144/255.0 blue:255/255.0 alpha:1.0]
Добавление категории в 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];