Изменить оттенок цвета UIButton на основе фонового изображения - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть UIImageView с кнопкой закрытия, имеющей белый оттенок, но если фоновое изображение белого цвета, кнопка UI не отображается. Мне нужно изменить UIButton цвет программно на основе цвета фонового изображения.

enter image description here

Можно ли каким-либо образом изменить цвет UIButton на основе изображения, размещенного в UIImageView?

1 Ответ

0 голосов
/ 21 апреля 2020

здесь - расширение для установки цвета фона для кнопки UIB в соответствии с выбранным, нормальным или выделенным цветом

extension UIButton {

    func setBackgroundColor(color: UIColor, forState: UIControl.State) {
        self.clipsToBounds = true  // add this to maintain corner radius
        UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
        if let context = UIGraphicsGetCurrentContext() {
            context.setFillColor(color.cgColor)
            context.fill(CGRect(x: 0, y: 0, width: 1, height: 1))
            let colorImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            self.setBackgroundImage(colorImage, for: forState)
        }
    }

}

, и вы также можете установить цвет оттенка кнопки Как

loginButton.tintColor = .red
...