【问题标题】:Swift Changing UISlider images and tint doesn't work as expected快速更改 UISlider 图像和色调无法按预期工作
【发布时间】: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


    【解决方案1】:

    来自UISlider thumbTintColor 的文档:

    设置此属性会将缩略图重置为滑块的默认图像;滑块释放任何自定义图像。将此属性设置为 nil 会将色调颜色重置为默认值并删除任何自定义缩略图。

    两个轨道色调相同。

    如果您想要自定义图像,则只需设置自定义图像而不设置色调。

    换句话说,设置自定义图像或设置色调。不要同时设置。

    【讨论】:

    • 这并不能真正解决我的问题,因为色调颜色与屏幕上显示的图像动态匹配
    • 如果您希望更改自定义滑块图像的色调,则需要对图像进行着色,然后更新滑块的自定义图像。无法同时设置自定义图像和滑块的色调。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多