【发布时间】:2017-03-29 03:01:59
【问题描述】:
我需要更改UISlider 的背景,我的目标是创建如下图所示的 UISlider:
我试过setBackgroundImage的方法,但它就像滑块的框架。
如何更改滑块的背景图片?
【问题讨论】:
-
贴出你的代码,我们才能看懂
我需要更改UISlider 的背景,我的目标是创建如下图所示的 UISlider:
我试过setBackgroundImage的方法,但它就像滑块的框架。
如何更改滑块的背景图片?
【问题讨论】:
1. 在滑块下方添加相同尺寸的图像视图。将您的多色图像设置为它。
2. 使用透明图片作为左右滑块图片
UIImage *clearImage = [[UIImage imageNamed:@"clearSliderBar.png"] stretchableImageWithLeftCapWidth:14.0 topCapHeight:0.0];
[slider setMinimumTrackImage:clearImage forState:UIControlStateNormal];
[slider setMaximumTrackImage:clearImage forState:UIControlStateNormal];
【讨论】:
已接受答案的快速 Swift 3 翻译。请记住在使轨道图像透明之前在滑块后面添加自定义颜色/视图。
let slider = UISlider()
let clearImage = UIImage().stretchableImage(withLeftCapWidth: 14, topCapHeight: 0)
slider.setMinimumTrackImage(clearImage, for: .normal)
slider.setMaximumTrackImage(clearImage, for: .normal)
【讨论】:
您是否尝试过here 接受的答案?它成功了:
UIImage *sliderLeftTrackImage = [[UIImage imageNamed: @"SliderMin.png"] stretchableImageWithLeftCapWidth: 9 topCapHeight: 0];
UIImage *sliderRightTrackImage = [[UIImage imageNamed: @"SliderMax.png"] stretchableImageWithLeftCapWidth: 9 topCapHeight: 0];
[mySlider setMinimumTrackImage: sliderLeftTrackImage forState: UIControlStateNormal];
[mySlider setMaximumTrackImage: sliderRightTrackImage forState: UIControlStateNormal];
【讨论】:
要将图像设置为滑块,您可以使用 setMinimumTrackImage、setMaximumTrackImage 方法。根据您的要求,将两者都设置为相同的图像。
UIImage *slider = [[UIImage imageNamed: @"Slider.png"] stretchableImageWithLeftCapWidth: 7 topCapHeight: 0];
[mySlider setMinimumTrackImage: slider forState: UIControlStateNormal];
[mySlider setMaximumTrackImage: slider forState: UIControlStateNormal];
更多信息请查看以下链接:
http://jasonlawton.com/blog/customizing-uislider-in-iphone/
【讨论】: