Я создал простой подкласс UIButton, который использует tintColor
для текста и границ цвета, а когда выделено, меняет свой фон на 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)
}
}
Это использует расширение UIImage, которое создает изображение из цвета, я нашел этот код здесь: https://stackoverflow.com/a/33675160
Лучше всего он работает, когда в конструкторе интерфейса задано значение «Пользовательский», поскольку тип системы по умолчанию слегка изменяет цвета при выделении кнопки.