使用buttonPress淡化UIColor

时间:2016-07-14 08:37:04

标签: ios swift uibutton uilabel uicolor

我正在创建一个交互式应用程序,它应该显示一个蓝色的UILabel,当按下某个按钮时它必须会褪色。当我们一直按下按钮时,标签的颜色应该褪色。我尝试创建一个自定义的UIColor并改变它的亮度,但它并没有真正有效。它会在几次按下按钮后消失,之后颜色根本不会改变。

实现目标的最佳方法是什么?任何帮助,将不胜感激。这是一项简单的任务,但无缘无故地变得烦人。

这是我正在做的代码。 "管"是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)
    }

1 个答案:

答案 0 :(得分:0)

假设ViewController背景为白色,您可以通过实际淡化按钮本身或颜色的Alpha值来淡化背景颜色。

要更改按钮的不透明度,请使用以下代码:

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

如果您想要淡化颜色,则必须从之前的颜色中提取RGB值(请参阅this answer)并在重新创建时更改其alphaValue。