Estou criando elementos personalizados no meu aplicativo e quero corresponder à aparência do novo iOS. O iOS 7 nos apresentou uma cor azul mais clara muito comum, a cor ou tonalidade padrão para vários elementos, incluindo o botão do sistema, controle segmentado etc. Eles facilitaram a seleção da cor usando o IB, como visto aqui:
No entanto, não achei como acessar facilmente a cor programaticamente. Verifiquei a documentação do UIColor e não parece haver nenhum acessador para a cor azul do sistema na própria classe.
Aqui está minha pergunta: existe um acessador simples para essa cor? [UIColor ?]
ou algo assim? Caso contrário, alguém sabe os valores RGB exatos para essa cor?
UIView().tintColor
, mas na verdade não pode. Não tenho certeza em que ponto o UIView recebe o conjunto cor da tonalidade ...UIWindow
ou talvez sua visualização raiz tenha a versão original. As exibições herdam a cor da tonalidade das exibições mais altas na cadeia de respostas, mas no seu exemplo, a nova exibição não tem superview.self.view.tintColor
de dentroUIViewController.viewDidLoad()
dá o azul certo.Parece ser
[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]
.fonte
UIColor(red: 0.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0)
A cor azul padrão do iOS 7 é
R:0.0 G:122.0 B:255.0
fonte
0x007aff
De acordo com a documentação do UIButton:
Supondo que você não altere o tintColor antes de obter o valor padrão, você pode usar:
fonte
sharedApplication()
não tem umkeyWindow
comtintColor
Aqui está um método simples para obter a cor padrão da tonalidade do sistema:
fonte
dispatch_once
é bastante baixa e é única se verificar no caso comum.UIColor
em vários threads. Envolvê-lo emdispatch_once
permite recuperar com segurança essa cor em qualquer linha. E, novamente, a sobrecarga é muito baixa.Código de cores hex
e você precisa desta biblioteca https://github.com/thii/SwiftHEXColors
ps. iOS, Swift
fonte
rápida maneira 4:
fonte
Esta extensão fornece a cor azul do sistema nativo.
ATUALIZAR
Por favor, esqueça o que escrevi acima, apenas descobri - existem extensões nativas com cores predefinidas do sistema que procurávamos, incluindo o azul do sistema :
Você pode usá-lo diretamente:
fonte
static let system = UIView().tintColor!
ainda é muito melhor que a sua variante.Obtenha a cor automaticamente usando este código:
fonte
O
UIWindow.tintColor
método não estava funcionando para mim no iOS8 (ainda estava preto), então tive que fazer o seguinte:Isso deu o tom azul adequado visto em um
UIBarButtonItem
fonte
No iOS 7, há uma API e você pode obter (e definir) a cor da tonalidade com:
Ou se você precisar do CGColor:
fonte
Em muitos casos, o que você precisa é apenas
ou para agilidade
fonte
enquanto define a cor, você pode definir cores como esta
fonte
/255.0
com cadargb
valor?A adição de uma categoria ao UIColor da seguinte maneira a disponibilizará sempre que você precisar ou até mesmo alterará sua definição em todo o seu código:
Depois de importar a categoria no seu código, você pode chamar a cor usando:
fonte
blue
dered
in+ (instancetype)iOS7redColor;