繁体   English   中英

快速更改UISlider图像和色调无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM