[英]Swift Changing UISlider images and tint doesn't work as expected
我的ViewController中有一个滑块:
@IBOutlet weak var timeSlider: UISlider!
使用代码时:
timeSlider.setMinimumTrackImage(#imageLiteral(resourceName: "track"), for: .normal)
timeSlider.setMaximumTrackImage(#imageLiteral(resourceName: "track"), for: .normal)
timeSlider.setThumbImage(#imageLiteral(resourceName: "thumb2"), for: .normal)
我的滑块如下所示:
它效果很好,表现得像人们期望的那样
现在,我想使拇指之前的部分具有不同的颜色,而拇指之后的部分也具有不同的颜色,因此我创建了一个函数,该函数从用于视图的图像中创建新图像作为模板(模板为数组):
func setTemplates(){
templates.removeAll()
for i in 0 ..< 10{
templates.append(playImg[i].withRenderingMode(.alwaysTemplate))
}
}
templates [5]与“ thumb2”是同一图像
templates [6] =“曲目”
然后我想分配template [6](将图像“轨迹”转换为模板)并按与视图中其他图像(例如按钮)或颜色标签等相同的方式对其进行着色:
timeSlider.setMinimumTrackImage(templates[6], for: .normal)
timeSlider.setMaximumTrackImage(templates[6], for: .normal)
timeSlider.setThumbImage(templates[5], for: .normal)
timeSlider.minimumTrackTintColor = colors.primaryColor
timeSlider.maximumTrackTintColor = colors.detailColor
timeSlider.thumbTintColor = colors.secondaryColor
颜色是一种结构,其中包含四种不同的颜色。 但是如您所见,它无法正常工作
图像拇指已设置为默认拇指,它甚至无法正常工作,因为我无法将拇指移动到滑块的0.0位置,并且在我将其移动或颜色更改后,拇指之后的部分变为蓝色,即滑块的默认设置。
我尝试了不同的方法来解决此问题,但这是我最接近其正常工作的方法。 在这一点上,我开始认为这是一个错误,但也许我在代码中犯了一些错误。 正如我说的,我有按钮,标签,它们的颜色与在此尝试的方式相同
button.setImage(templates[7], forState: .normal)
button.tintColor = colors.primaryColor
而且有效我在做什么错?
从UISlider thumbTintColor
的文档中:
设置此属性会将拇指图像重置为滑块的默认图像; 滑块释放所有自定义图像。 将此属性设置为nil会将色调颜色重置为默认颜色,并删除所有自定义拇指图像。
两个轨道的色调相同。
如果需要自定义图像,则只需设置自定义图像,而不需要设置色彩。
换句话说,设置自定义图像或设置色调。 不要同时设置两者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.