UISlider将自定义UIImage设置为UIImageRenderingModeAlwaysTemplate

时间:2015-10-15 02:06:58

标签: ios uiimage uislider

我正在尝试通过设置拇指,minimumTrack和maximumTrack的自定义图像来自定义UISlider的外观,如下所示:

let sliderThumbImage = UIImage(named: "slider-thumb")
volumeSlider.setThumbImage(sliderThumbImage, forState: .Normal)
let minTrackImage = UIImage(named: "slider-min-track")
volumeSlider.setMinimumTrackImage(minTrackImage, forState: .Normal)
let maxTrackImage = UIImage(named: "slider-max-track")
volumeSlider.setMaximumTrackImage(maxTrackImage, forState: .Normal)

这可以按预期工作。

但是,我想将这些图像设置为UIImageRenderingModeAlwaysTemplate

,将这些图像设置为模板图像

问题是如果我然后像这样设置tintColor:

volumeSlider.thumbTintColor = UIColor.greenColor()

然后删除自定义图像并再次使用默认图像。

如何同时自定义图像和tintColor?

编辑:文档似乎支持我遇到的问题:

  

请注意,您只能调整默认曲目和拇指的色调   图像,而不是自定义图像。设置滑块的一部分的色调   具有与之关联的自定义图像将删除这些图像。

来源:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UISlider.html

1 个答案:

答案 0 :(得分:0)

如果在UISlider本身上设置色调颜色,它将改变自定义拇指图像的色调。

volumeSlider.tintColor = .green

但是,您需要创建拇指图像,并将其渲染模式设置为alwaysTemplate。这可以通过资产经理或code完成。