使用 buttonPress 淡化 UIColor
Posted
技术标签:
【中文标题】使用 buttonPress 淡化 UIColor【英文标题】:fading the UIColor with a buttonPress 【发布时间】:2016-07-14 08:37:04 【问题描述】:我正在制作一个交互式应用程序,它应该显示一个蓝色的 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)
【问题讨论】:
看不到代码就忍不住了。 @Feldur 刚刚发布! :) 【参考方案1】:假设 ViewController 背景为白色,您可以通过实际淡化按钮本身或颜色的 alpha 值来淡化背景颜色。
要更改按钮的不透明度,请使用以下代码:
if tube.layer.opacity > 0
tube.layer.opacity -= 0.1
如果您想要淡化颜色,则必须从以前的颜色中提取 RGB 值(请参阅this answer)并在重新创建时更改其 alphaValue。
【讨论】:
以上是关于使用 buttonPress 淡化 UIColor的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的异常 'NSUnknownKeyException' - 此类与键 buttonPressed 的键值编码不兼容