Nota: isso não pareceu funcionar para mim (talvez porque eu esteja no swift 3.1?). A versão de Paras Joshi ( stackoverflow.com/a/29701061/225813 ) funcionou
Ashley Coolman
Eu editei minha resposta. com certeza funcionará para você .. Ashley Coolman
Shashi Verma
1
Você não precisa chamar o init explicitamente no swift 3.
ibrahimab
É possível usar mais de uma cor?
Gökhan Çokkeçeci
3
Existe alguma diferença entre as suas duas versões?
Fogmeister
88
No Swift 4, você pode definir a cor e largura da borda para UIControls usando o código abaixo.
@ShashiVerma de nada. Para maiores detalhes sobre as camadas, leia os documentos de referência de classe de diferentes objetos da apple, que também são úteis para você :)
Paras Joshi
16
Use @IBDesignable e @IBInspectable para fazer o mesmo.
Eles são reutilizáveis, facilmente modificáveis no Interface Builder e as alterações são refletidas imediatamente no Storyboard
Adapte os objetos do storyboard à classe específica
Eu gosto mais dessa solução, pois é reutilizável, em que definimos o UIView como customview, mas ainda deixa espaço para mais alterações.
n0rm
Esta era minha maneira favorita de conseguir isso, mas com o modo escuro, realmente não funciona bem. Ele obtém o estilo de cor do MacOS atual e usa estática. Mas inclua @IBDesignablee @IBInspectabletudo funcione bem, então deve haver uma maneira para os costumes usarem recursos de cor com o modo claro / escuro também - alguém sabe como fazer isso?
Desenvolvedor Nomad de
12
Você pode escrever uma extensão para usá-lo com todos os UIViews, por exemplo. UIButton, UILabel, UIImageView etc. Você pode personalizar meu método a seguir de acordo com sua necessidade, mas acho que funcionará bem para você.
De alguma forma, ele não faz nada a menos que você defina explicitamente a largura da borda também.
Nicolas Miari
@NicolasMiari que seria de esperar ... você não pode ver uma cor de borda para a qual não definiu um tamanho.
Jono Guthrie
Desculpe, esqueci de mencionar que estava me referindo a campos de texto ... que parecem ter uma largura de borda diferente de zero padrão desde o início. No entanto, tive dificuldade para refletir a cor que defini, até definir explicitamente a largura da borda.
Em vez de adicionar uma nova resposta, você deve ter enviado uma solicitação de edição ao respondente original
Rajan Maheshwari
@RajanMaheshwari Por favor, não. Não adicione código às respostas de outras pessoas. As atualizações devem ser postadas como suas próprias, não em outras respostas. Dessa forma, cada postador é responsável pelo que postar ...
Eric Aya
@EricAya não se trata de atualizar a resposta. É um pedido de edição, pode ser nos comentários ao respondente. Você entendeu o que eu estava tentando transmitir.
Respostas:
Se você usa Swift 2.0+
fonte
No Swift 4, você pode definir a cor e largura da borda para UIControls usando o código abaixo.
<Swift 4 , você pode definir a largura e cor da borda do UIView usando o código abaixo.
fonte
Use @IBDesignable e @IBInspectable para fazer o mesmo.
Eles são reutilizáveis, facilmente modificáveis no Interface Builder e as alterações são refletidas imediatamente no Storyboard
Adapte os objetos do storyboard à classe específica
Fragmento de código:
Permite fácil modificação do Interface Builder:
fonte
@IBDesignable
e@IBInspectable
tudo funcione bem, então deve haver uma maneira para os costumes usarem recursos de cor com o modo claro / escuro também - alguém sabe como fazer isso?Você pode escrever uma extensão para usá-lo com todos os UIViews, por exemplo. UIButton, UILabel, UIImageView etc. Você pode personalizar meu método a seguir de acordo com sua necessidade, mas acho que funcionará bem para você.
Uso:
fonte
rápido 3
fonte
Swift 5.2 , UIView + Extension
Você usou esta extensão;
fonte
Escreva o código em seu
viewDidLoad()
E você pode definir
Color
comRGB
Aprenda algo sobre
CALayer
emUIKit
fonte
Swift 3.0
fonte
Podemos criar um método para isso. Basta usá-lo.
fonte
Swift 3.0
fonte