Cores em Swift: UIColor

UIColor torna possível customizar a cor para Dark Mode, dá um conjunto semântico de cores "da Apple", e também torna possível definir não só a cor, mas também o padrão de preenchimento do espaço, que meio que grita para nós que UIColor não é uma cor. Vamos dar uma olhada rápida nesses corredores UIColor.





UIColor é uma classe que armazena dados de cor e transparência. As cores no iOS podem ser representadas em diferentes espaços de cores, sendo o mais famoso o RGB. Na verdade, a própria cor é armazenada na propriedade cgColor da classe CGColor. Existem várias entidades no iOS que podem armazenar informações de cores - cada uma para sua própria estrutura:





  • para UIKit é a classe UIColor, 





  • para SwiftUI, é uma estrutura de cores, 





  • para Core Graphics, esta é a classe CGColor, 





  • para Core Image, esta é a classe CIColor





Neste artigo, tentarei falar sobre a classe UIColor, que faz parte do framework UIKit.





Cores do sistema

O UIKit possui algumas cores predefinidas que você pode usar em seu projeto. Por exemplo, verde UIColor.green ou geralmente apenas .green é o suficiente. Escrever assim usará uma cor específica com valores RGB de 0,0, 1,0, 0,0 e um nível de transparência de 1,0. Mas em UIColor, a cor UIColor.systemGreen também é definida. Como é diferente do UIColor.green usual? 





Desde o iOS 13.0, o modo escuro apareceu. O usuário pode escolher nas configurações do sistema em qual tema de cor é mais cômodo trabalhar - em um tema claro ou em um escuro. E a cor verde para esses modos será um pouco diferente. Além disso, para uma percepção confortável, o usuário pode escolher um modo de alto contraste que aumenta o contraste entre os elementos da interface e o fundo. E a cor verde para este modo também será diferente. 





, , , Apple, , . - , , "system...":





  • systemBlue





  • systemIndigo





  • systemOrange





  • systemPink





  • systemPurple





  • systemRed





  • systemTeal





  • systemYellow





- - , , .





, , - , , ..





  • systemGray





  • systemGray2





  • systemGray3





  • systemGray4





  • systemGray5





  • systemGray6





, , . .





Black White, . .





, . UIKit tintColor, , - , , , UISegmentControl .. - , brandColor primaryBrandColor/secondaryBrandColor. .





, - . , UILabel . , UILabel .red, :





let primaryTextColor = UIColor.red







UILabel :





label.textColor = primaryTextColor







- , . primaryTextColor.





. , .





UIKit

Apple , . , . UIKit .





:





  • label -





  • secondaryLabel -





  • tertiaryLabel -





  • quaternaryLabel -





, , secondaryLabel , tertiaryLabel . 





:





  • systemFill





  • secondarySystemFill





  • tertiarySystemFill





  • quaternarySystemFill





Apple / , , ..





:





  • placeholderText





:





  • systemBackground





  • secondarySystemBackground





  • tertiarySystemBackground





.





:





  • systemGroupedBackground





  • secondarySystemGroupedBackground





  • tertiarySystemGroupedBackground





.grouped .





:





  • separator





  • opaqueSeparator





:





  • link





, :





  • darkText





  • lightText





UIKit , , . 





Apple.





, Dark Light

- XCode Assets Color Set, Dark Light Mode Appearances. , .





Onde posso encontrar configurações de cores em Ativos no Xcode
Assets XCode

:





let color = UIColor(named: "ColorName")







" " iOS.





- , .





UIColor:





init(dynamicProvider: @escaping (UITraitCollection) -> UIColor)







UITraitCollection - , Dark Light , .. userInterfaceStyle .





:





let color = UIColor { traitCollection -> UIColor in







    switch traitCollection.userInterfaceStyle {







        case .light, .unspecified: return .white







        case .dark: return .black







    }







}







UIColor :





  • HSB, RGB





  • UIColor









  • - UIColor ...





init(patternImage image: UIImage)







UIColor, , . , , UILabel, -  (. ).





- , . " ", " ".





Embora UIColor seja uma classe bastante simples, ela fornece recursos de gerenciamento de cores com base nas configurações atuais. Além disso, como vimos, ele pode definir não apenas a cor, mas também o método geral de preenchimento do espaço. Para ajudar os desenvolvedores, a Apple fornece um conjunto de cores semânticas que simplificam o desenvolvimento e permitem que você altere ligeiramente a cor dos elementos da interface.








All Articles