我正在创建一个交互式应用程序,它应该显示一个蓝色的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)
}
答案 0 :(得分:0)
假设ViewController背景为白色,您可以通过实际淡化按钮本身或颜色的Alpha值来淡化背景颜色。
要更改按钮的不透明度,请使用以下代码:
if tube.layer.opacity > 0 {
tube.layer.opacity -= 0.1
}
如果您想要淡化颜色,则必须从之前的颜色中提取RGB值(请参阅this answer)并在重新创建时更改其alphaValue。