Я думаю, вы можете использовать функцию setBackgroundImage
для архивирования:
button.setBackgroundImage(UIImage(named: "PURPLE_IMAGE"), for: .highlighted)
Вы можете установить изображение для highlighted
, selected
, disable
... и т.д.
Я знаю, что ваш вопрос заключается в том, чтобы изменить цвет фона подсветки, а не фоновое изображение, но, к сожалению, у него, похоже, нет прямого способа сделать это.Поэтому моя работа заключается в том, чтобы программно создать изображение этого цвета для того же эффекта (вы можете добавить его в расширение UIImage):
let rect = CGRect(point: .zero, size: CGSize(width: 1, height: 1))
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
let context = UIGraphicsGetCurrentContext()
context!.setFillColor(color.cgColor)
context!.fill(rect)
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()