【发布时间】:2018-03-19 18:25:56
【问题描述】:
我的 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”是同一张图片
模板[6] = "轨道"
然后我想分配模板[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
colors 是一个包含四种不同颜色的结构体。但是你可以看到它不能正常工作
图像拇指被设置为默认值,它甚至无法正常运行,因为我无法将拇指移动到滑块的 0.0 位置,并且在我移动它或颜色改变后,拇指后的部分变为蓝色滑块的默认颜色。
我尝试了不同的方法来解决这个问题,但这是我最接近正常工作的方法。在这一点上,我开始认为这是一个错误,但也许我在代码中犯了一些错误。正如我所说,我有按钮、标签,我在这里尝试的颜色与我尝试的相同
button.setImage(templates[7], forState: .normal)
button.tintColor = colors.primaryColor
它有效 我做错了什么?
【问题讨论】:
标签: ios swift templates slider