Uso o botão personalizado no meu aplicativo chamado "addButton" e desejo delimitá-lo com a cor branca. Como posso colocar a borda branca com o botão personalizado?
ios
objective-c
Iphone
fonte
fonte
Respostas:
Você pode definir as propriedades da borda no CALayer acessando a propriedade da camada do botão.
Primeiro, adicione Quartzo
Definir propriedades:
Vejo:
https://developer.apple.com/documentation/quartzcore/calayer#//apple_ref/occ/cl/CALayer
O CALayer no link acima permite definir outras propriedades como raio do canto, maskToBounds etc ...
Além disso, um bom artigo sobre diversão com botões:
https://web.archive.org/web/20161221132308/http://www.apptite.be/tutorial_custom_uibuttons.php
fonte
CGColor
É muito simples, basta adicionar o cabeçalho quartzCore no seu arquivo (para isso você precisa adicionar a estrutura de quartzo ao seu projeto)
e depois faça isso
você pode alterar os valores flutuantes, conforme necessário.
desfrutar.
Aqui estão alguns códigos modernos típicos ...
essa é uma aparência semelhante aos controles segmentados.
Apenas faça:
fonte
E rapidamente, você não precisa importar "QuartzCore / QuartzCore.h"
Apenas use:
ou
fonte
O problema ao definir a camada
borderWidth
eborderColor
é que, quando você toca no botão, a borda não anima o efeito de destaque.Obviamente, você pode observar os eventos do botão e alterar a cor da borda de acordo, mas isso parece desnecessário.
Outra opção é criar uma UIImage extensível e defini-la como imagem de fundo do botão. Você pode criar um conjunto de imagens em seus Images.xcassets assim:
Em seguida, defina-a como imagem de fundo do botão:
Se a sua imagem for uma imagem de modelo, você poderá definir a cor da tonalidade do botão e a borda mudará:
Agora a borda será destacada com o restante do botão quando tocada.
fonte
borderWidth
.Para alterar o botão Raio, Cor e Largura, defino assim:
fonte
Aqui está uma versão atualizada ( Swift 3.0.1 ) da resposta de Ben Packard .
O botão resultante pode ser usado dentro do seu StoryBoard, graças às tags
@IBDesignable
e@IBInspectable
.Além disso, as duas propriedades definidas permitem definir a largura e a cor da borda diretamente no construtor de interfaces e visualizar o resultado.
Outras propriedades podem ser adicionadas de maneira semelhante, para o raio da borda e destacar o tempo de desbotamento.
fonte
prepareForInterfaceBuilder
apenas é chamado do IB, não quando você executa o aplicativo. Portanto, defina também o UIEdgeInsetsawakeFromNib
e ele também será exibido ao executar o aplicativo.Você não precisa importar
QuartzCore.h
agora. Tomando iOS 8 sdk e Xcode 6.1 em referência.Use diretamente:
fonte
Aqui está uma
UIButton
subclasse que suporta a animação de estado destacada sem usar imagens. Também atualiza a cor da borda quando o modo de tonalidade da vista é alterado.Uso:
let button = BorderedButton(style: .System) //style .System is important
Aparência:
fonte
Isso pode ser alcançado em vários métodos no Swift 3.0. Worked on Latest version August - 2017
Atribua diretamente os valores da propriedade borderWidth para o botão UI:
Defina o título com os valores de cor padrão para o botão da interface do usuário:
Defina Borda com cor padrão para os valores da propriedade de borda da interface do usuário Botão:
Defina Cor definida pelo usuário para os valores da propriedade da borda da interface do usuário Botão:
Use o método Extension, para que o botão do aplicativo pareça consistente e sem necessidade de repetir várias linhas de código em todos os lugares.
Uso no código:
Saída do método de extensão Botão:
fonte
Atualize com o Swift 3
fonte
**** Em Swift 3 ****
Para criar borda
Para fazer o canto arredondado
fonte
Swift 5
Para alterar a cor da borda, use
fonte