Как я могу получить синий цвет по умолчанию iOS 7 программно?

Я создаю пользовательские элементы в своем приложении и хочу соответствовать внешнему виду нового iOS. iOS 7 представила нам очень распространенный светло-голубой цвет, цвет или оттенок по умолчанию для нескольких элементов, включая кнопку системы, сегментированный элемент управления и т.д. Они упростили выбор цвета с использованием IB, как показано здесь:

enter image description here

Однако я не нашел, как легко получить доступ к цвету программно. Я проверил документацию UIColor, и, похоже, не существует какого-либо аксессуара для синего цвета системы в самом классе.

Здесь мой вопрос: существует ли простой аксессуар для этого цвета? [UIColor ?] или что-то в этом роде? Если нет, кто-то знает точные значения RGB для этого цвета?

Ответ 1

Используйте self.view.tintColor с контроллера вида или self.tintColor из подкласса UIView.

Ответ 2

Кажется, это [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0].

screenshot showing Colors window

Ответ 3

синий цвет 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];

Ответ 4

В соответствии с документацией для UIButton:

В iOS v7.0 все подклассы UIView получают свое поведение для tintColor из базового класса. См. Обсуждение tintColor на уровне UIView для получения дополнительной информации.

Предполагая, что вы не изменяете tintColor, прежде чем брать значение по умолчанию, вы можете использовать:

self.view.tintColor

Ответ 5

Вот простой способ получения цвета оттенков системы по умолчанию:

+ (UIColor*)defaultSystemTintColor
{
   static UIColor* systemTintColor = nil;
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
      UIView* view = [[UIView alloc] init];
      systemTintColor = view.tintColor;
   });
   return systemTintColor;
}

Ответ 7

Метод UIWindow.tintColor не работал у меня в iOS8 (он все еще был черным), поэтому я должен был сделать это:

let b = UIButton.buttonWithType(UIButtonType.System) as UIButton
var color = b.titleColorForState(.Normal)

Это дало правильный синий оттенок, наблюдаемый в UIBarButtonItem

Ответ 8

Получить цвет автоматически, используя этот код:

static let DefaultButtonColor = UIButton(type: UIButtonType.System).titleColorForState(.Normal)!

Ответ 9

Из iOS 7 существует API, и вы можете получить (и установить) цвет оттенка с помощью:

self.view.tintColor

Или, если вам нужен CGColor:

self.view.tintColor.CGColor

Ответ 10

Во многих случаях вам нужно просто

[self tintColor] 
// or if in a ViewController
[self.view tintColor]

или для быстрого

self.tintColor
// or if in a ViewController
self.view.tintColor

Ответ 11

swift 4 way:

extension UIColor {
  static let system = UIView().tintColor!
}

Ответ 12

при настройке цвета вы можете установить цвет следующим образом

[UIColor colorWithRed:19/255.0 green:144/255.0 blue:255/255.0 alpha:1.0]

Ответ 13

Добавление категории в 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];