É possível controlar as propriedades da borda do UIView (cor, espessura, etc ...) diretamente do construtor de interface ou eu posso fazê-lo apenas programaticamente?
ios
uiview
interface-builder
border
matteo.cajani
fonte
fonte
Respostas:
Na verdade, você pode definir algumas propriedades da camada de uma visualização por meio do construtor de interfaces. Eu sei que posso definir borderWidth e cornerRadius de uma camada através do xcode. borderColor não funciona, provavelmente porque a camada deseja um CGColor em vez de um UIColor.
Você pode ter que usar Strings em vez de números, mas funciona!
fonte
A resposta do Rich86Man está correta, mas você pode usar categorias para propriedades de proxy, como layer.borderColor. (Do ConvencionalC CocoaPod)
CALayer + XibConfiguration.h:
CALayer + XibConfiguration.m:
O resultado será aparente durante o tempo de execução, não no Xcode.
Editar : você também precisa definir
layer.borderWidth
pelo menos 1 para ver a borda com a cor escolhida.No Swift 2.0:
No Swift 3.0:
fonte
Resposta semelhante à do iHulk, mas em Swift
Adicione um arquivo chamado UIView.swift ao seu projeto (ou cole-o em qualquer arquivo):
Em seguida, isso estará disponível no Interface Builder para cada botão, imageView, etiqueta etc. no Painel de utilitários> Inspetor de atributos:
Nota: a borda aparecerá apenas em tempo de execução.
fonte
@IBDesignable
do início da extensão.Você pode criar uma categoria do UIView e adicioná-lo no arquivo .h da categoria
Agora adicione isso no arquivo .m
e isso também em. arquivo m
agora você verá isso no seu storyboard para todas as subclasses UIView (UILabel, UITextField, UIImageView etc.)
É isso. Não é necessário importar a categoria em qualquer lugar, basta adicionar os arquivos da categoria no projeto e ver essas propriedades no storyboard.
fonte
Para Swift 3 e 4 , se você estiver disposto a usar
IBInspectable
s, existe o seguinte:fonte
Embora isso possa definir as propriedades, ele não reflete na IB. Portanto, se você está essencialmente escrevendo código no IB, pode fazê-lo no seu código-fonte
fonte
Se você quiser economizar tempo, use duas
UIViews
em cima da outra, a da parte traseira sendo da cor da borda e a da frente menor, dando o efeito da borda. Também não acho que essa seja uma solução elegante, mas se a Apple se importava um pouco mais, não seria necessário fazer isso.fonte
É absolutamente possível apenas quando você define
layer.masksToBounds = true
e descansa as coisas.fonte
Portanto, é sempre uma resposta perfeita usar o código, basta criar a instância IBOutlet do UIView e adicionar as propriedades
Resposta curta :
Resposta longa :
Cantos arredondados de UIView / UIButton etc
Espessura da borda
Cor da borda
fonte
Adicione estas 2 linhas simples de código:
Vai funcionar bem.
fonte