我需要更改UISlider
的背景,我的目标是创建UISlider,如下图所示:
我尝试了setBackgroundImage
方法,但它就像滑块的框架。
如何更改滑块的背景图像?
答案 0 :(得分:7)
1。在滑块下方添加尺寸相同的图片视图。将多色图像设置为它。
2. 使用透明图像作为滑块图像的左右两侧
UIImage *clearImage = [[UIImage imageNamed:@"clearSliderBar.png"] stretchableImageWithLeftCapWidth:14.0 topCapHeight:0.0];
[slider setMinimumTrackImage:clearImage forState:UIControlStateNormal];
[slider setMaximumTrackImage:clearImage forState:UIControlStateNormal];
答案 1 :(得分:2)
Quick Swift 3翻译接受的答案。在使轨道图像透明之前,请务必在滑块后面添加自定义颜色/视图。
let slider = UISlider()
let clearImage = UIImage().stretchableImage(withLeftCapWidth: 14, topCapHeight: 0)
slider.setMinimumTrackImage(clearImage, for: .normal)
slider.setMaximumTrackImage(clearImage, for: .normal)
答案 2 :(得分:0)
您是否尝试过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];
答案 3 :(得分:0)
要将图像设置为滑块,可以使用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/