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