2015-10-15 58 views
2

我試圖用拇指,minimumTrack和maximumTrack像這樣設置自定義圖像來定製一個UISlider的外觀:UISlider定製的UIImage設置爲UIImageRenderingModeAlwaysTemplate

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

+0

如果文檔說你不能這樣做,那麼你不能這樣做。至少不是沒有黑客。您始終可以創建自己的自定義滑塊,或從通過谷歌搜索提供的大量控件中選擇一個。 –

回答

0

如果設置在UISlider本身色調的顏色,它會改變你的自定義拇指圖像的色調。

volumeSlider.tintColor = .green

你不過需要設置爲alwaysTemplate其渲染模式創建拇指圖像。這可以通過資產管理器或code完成。