改变UISlider的背景图像?

时间:2013-11-19 11:46:21

标签: ios uislider

我需要更改UISlider的背景,我的目标是创建UISlider,如下图所示:

UISlider

我尝试了setBackgroundImage方法,但它就像滑块的框架。

如何更改滑块的背景图像?

4 个答案:

答案 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];

This is 20x8 sample transparet image for test

答案 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/

Custom Slider

Another Custom code

Custom with Popover value display Slider

Slider image