自定义 UIImage 设置为 UIImageRenderingModeAlwaysTemplate 的 UISlider
Posted
技术标签:
【中文标题】自定义 UIImage 设置为 UIImageRenderingModeAlwaysTemplate 的 UISlider【英文标题】:UISlider with custom UIImage set to UIImageRenderingModeAlwaysTemplate 【发布时间】:2015-10-15 02:06:57 【问题描述】:我正在尝试通过为 thumb、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
【问题讨论】:
如果文档说你做不到,那么你就做不到。至少不是没有破解。您始终可以创建自己的自定义滑块,或从通过 google 搜索获得的大量控件中选择一个。 【参考方案1】:如果您在 UISlider 本身上设置色调颜色,它将改变您的自定义拇指图像的色调。
volumeSlider.tintColor = .green
但是,您需要创建缩略图,并将其渲染模式设置为 alwaysTemplate。这可以通过资产管理器或code 来完成。
【讨论】:
以上是关于自定义 UIImage 设置为 UIImageRenderingModeAlwaysTemplate 的 UISlider的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自定义 UIImage 作为 UITabBarItem 徽章?
在自定义 tableviewcell 中更改 UIImage