Eu criei uma sublcass UIButton simples que usa as tintColor
cores de texto e borda e, quando destacada, altera o plano de fundo para tintColor
.
class BorderedButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
layer.borderWidth = 1.0
layer.borderColor = tintColor.CGColor
layer.cornerRadius = 5.0
clipsToBounds = true
contentEdgeInsets = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)
setTitleColor(tintColor, forState: .Normal)
setTitleColor(UIColor.whiteColor(), forState: .Highlighted)
setBackgroundImage(UIImage(color: tintColor), forState: .Highlighted)
}
}
Isso faz uso de uma extensão UIImage que cria uma imagem de uma cor. Encontrei o código aqui: https://stackoverflow.com/a/33675160
Funciona melhor quando definido para digitar Personalizado no construtor de interface, pois o tipo de sistema padrão modifica ligeiramente as cores quando o botão é destacado.