исчезновение UIColor с помощью buttonPress

Я делаю интерактивное приложение, которое должно отображать UILabel синего цвета, который должен исчезать при нажатии определенной кнопки. Пока мы продолжаем нажимать кнопку, цвет метки должен исчезнуть. Я попытался создать собственный UIColor и изменить его яркость, но это не очень эффективно. Он исчезает за несколько нажатий кнопок, после чего цвет вообще не меняется.

Как лучше всего достичь моей цели? Любая помощь будет оценена по достоинству. Это простая задача, но она становится раздражающей без всякой причины.

вот код того, что я делаю. "tube" - это UILabel, цвет фона которого должен исчезать, поскольку int "count" продолжает увеличиваться.

var intensity : CGFloat = 0.3         
@IBAction func fa(sender: AnyObject) {

    let five = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.76, alpha: intensity)
    let four = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.65, alpha: intensity)
    let three = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.59, alpha: intensity)
    let two = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.53, alpha: intensity)
    let one = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.37, alpha: intensity)



    count += 1

    if (count == 0){
        tube.backgroundColor = UIColor(red: 109, green: 132, blue: 180, alpha: 0.2)
    }
    else if (count == 1){
        tube.backgroundColor = one
        print("one")
    }

    else if (count == 2 ){
        tube.backgroundColor = two
        print("two")
    }

    else if (count == 3){
        tube.backgroundColor = three
        print("three")
    }

    else if (count == 4){
        tube.backgroundColor = four
    }

    else if (count == 5){
        tube.backgroundColor = five
    }
    else {
        tube.backgroundColor = UIColor(red: 109, green: 132, blue: 180, alpha: 0.2)
    }

person Osaama Shehzad    schedule 14.07.2016    source источник
comment
Не могу помочь, не видя кода.   -  person Feldur    schedule 14.07.2016
comment
@Feldur только что опубликовал это! :)   -  person Osaama Shehzad    schedule 14.07.2016


Ответы (1)


Предполагая, что фон ViewController белый, вы можете ослабить цвет фона, фактически обесцветив либо саму кнопку, либо альфа-значение цвета.

Чтобы изменить прозрачность кнопки, используйте следующий код:

if tube.layer.opacity > 0 {
    tube.layer.opacity -= 0.1
}

Если вы хотите вместо этого обесцветить цвет, вам нужно извлечь значения RGB (см. an-uicolor-in-swift">этот ответ) из предыдущего цвета и изменить его alphaValue при его воссоздании.

person MrAsterisco    schedule 14.07.2016