Em Objective-C, usamos este código para definir códigos de cores RGB para visualizações:
#define UIColorFromRGB(rgbValue)
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
view.backgroundColor=UIColorFromRGB(0x209624);
Como posso usar isso no Swift?
Respostas:
Esta é uma versão Swift dessa função (para obter uma representação UIColor de um
UInt
valor):fonte
Eu queria colocar
mas isso não funcionou.
Então eu usei:
For Swift
Portanto, esta é a solução alternativa que encontrei.
fonte
Gostei muito da resposta de Nate Cook, mas queria algo um pouco mais idiomático. Acredito que este seja um caso de uso muito bom para um inicializador de conveniência por meio de uma extensão personalizada.
Isso agora pode ser usado da seguinte forma:
Eu recomendaria apenas fazer patch de classes UIKit como essa em seu próprio código de cliente, não em bibliotecas.
fonte
0x
seguido por qualquer cor hexadecimal - color-hex.comfonte
A maneira mais simples de adicionar cores programaticamente é usando ColorLiteral .
Basta adicionar a propriedade ColorLiteral conforme mostrado no exemplo, o Xcode irá apresentar uma lista completa de cores para você escolher. A vantagem de fazer isso é menos código, adicione valores HEX ou RGB . Você também obterá as cores usadas recentemente no storyboard.
Exemplo: self.view.backgroundColor = ColorLiteral
fonte
Se você está começando com uma string (não hex), esta é uma função que pega uma string hexadecimal e retorna um UIColor.
(Você pode inserir strings hexadecimais com o formato:
#ffffff
ouffffff
)Uso:
Swift 4:
Swift 3:
Swift 2:
Fonte: arshad / gist: de147c42d7b3063ef7bc
fonte
Para Xcode 9 , use
UIColor
com valores RGB.Antevisão:
Consulte a documentação adicional da Apple sobre UIColor .
fonte
UIColorFromRGB em Swift 4
fonte
Eu usei o seguinte rapidamente.
fonte
solução para o formato argb:
uso:
fonte
Isso funcionou para mim rapidamente. Tente isto
fonte
adicionando uma opção 3 rápida:
fonte
Você não pode usar macros complexas como
#define UIColorFromRGB(rgbValue)
no swift. A substituição de macro simples em swift são constantes globais comoMesmo assim, as macros complexas que aceitam parâmetros não são suportadas pelo swift. você poderia usar funções ao invés
Trecho de Using swift with cacau e objetivo C
Verifique a resposta de @Nate Cooks para a versão Swift dessa função a ser usada aqui
fonte
Você pode usar isto:
fonte
A resposta de Nate Cook está absolutamente correta. Apenas para maior flexibilidade, mantenho as seguintes funções em meu pacote:
E é assim que eu os uso:
Espero que isso ajude. Tudo é testado com Swift 3 / Xcode 8.
fonte
Esta é uma boa extensão para UIColor. Você pode usar valores enum (hex, string) e valores de string diretos ao criar objetos UIColor.
A extensão que merecemos https://github.com/ioramashvili/UsefulExtensions/blob/master/Extensions.playground/Pages/UIColor.xcplaygroundpage/Contents.swift
fonte
Eu posso ver que já foi respondido, mas ainda espero que um liner ajude melhor.
Atualizado:: Mudanças feitas de acordo com o exemplo explicado pelo autor da pergunta para fornecer valores hexadecimais
fonte
No Swift3, se você está começando com uma cor que você já escolheu, você pode obter o valor RGB online ( http://imagecolorpicker.com ) e usar esses valores definidos como UIColor. Esta solução os implementa como pano de fundo:
@Vadym mencionou isso acima nos comentários e é importante definir o CGFloat com uma única casa decimal
fonte
fonte
Isso pode ser feito simplesmente usando esta inicialização
fonte