我可以用我得到的值(sender.value)来改变滑块移动时的颜色吗?我正在尝试改变滑块移动时的颜色,从绿色到黄色再到红色。请迅速帮助,谢谢!
let brokeSlider = UISlider(frame:CGRectMake(5, 440, 355, 20))
brokeSlider.minimumValue = 0
brokeSlider.maximumValue = 1
brokeSlider.continuous = true
brokeSlider.tintColor = UIColor.blackColor()
brokeSlider.value = 0
brokeSlider.addTarget(self, action: #selector(AnnotationPhotoWidget.sliderValueDidChange(_:)), forControlEvents: .ValueChanged)
self.view.addSubview(brokeSlider)
func sliderValueDidChange(sender:UISlider) {
print("value--\(sender.value)")
}
3条答案
按热度按时间hgtggwj01#
请尝试以下代码:
jmo0nnb32#
试试看:
w8rqjzmb3#
@ashimVerma的解决方案效果很好。要想让它更上一层楼,获得平滑的色彩过渡,不妨给予这个:
这是通过利用HSL颜色空间来实现的,在HSL颜色空间中饱和度和亮度是恒定的。因此,我们只需要根据总色调范围的一部分来改变色调(从绿色到红色)。然后,我们将这些值转换为使用UIColor的HSB初始化器。
参考:https://en.wikipedia.org/wiki/Hue
更简单:
如果不需要在HSL颜色空间中工作,则可以通过直接设置饱和度和亮度值来进一步简化此操作。