iOS - UISlider的自定义图像

问题描述:

我想为UISlider轨道使用图像。我不希望拇指左侧有一种颜色,右侧有另一种颜色。我只想在整个轨道上有一张静态图像。可能?iOS - UISlider的自定义图像

对于图像设置为您的滑块就可以使用setMinimumTrackImagesetMaximumTrackImage方法。根据您的要求设置为相同的图像。

iOS 5以下

UIImage *sliderTrackImage = [[UIImage imageNamed: @"Slider.png"] stretchableImageWithLeftCapWidth: 7 topCapHeight: 0]; 

[mySlider setMinimumTrackImage: sliderTrackImage forState: UIControlStateNormal]; 
[mySlider setMaximumTrackImage: sliderTrackImage forState: UIControlStateNormal]; 

iOS 5以上

UIImage *sliderTrackImage = [[UIImage imageNamed:@"Slider.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 7, 0, 0)]; 

[mySlider setMinimumTrackImage: sliderTrackImage forState: UIControlStateNormal]; 
[mySlider setMaximumTrackImage: sliderTrackImage forState: UIControlStateNormal]; 

欲了解更多请查看以下链接:

  1. User Interface Customisation Tutorial
  2. http://jasonlawton.com/blog/customizing-uislider-in-iphone/
  3. Custom UISlider
  4. Slider image
+0

感谢。这工作。我不需要它是可伸缩的,所以我只使用imageNamed。 – soleil 2012-07-05 17:57:31

+0

感谢您的评论:) – 2012-07-05 18:01:09

+1

'stretchableImageWithLeftCapWidth:topCapHeight:'已弃用。将其替换为'resizableImageWithCapInsets:UIEdgeInsetsMake(0,7,0,7)resizingMode:UIImageResizingModeStretch'。 – 2015-09-29 15:45:56

只需将双方设置为相同的图像。如果您想要两端的圆角,您可能需要使用相同的颜色/图案制作两张独立的图像。

[[UISlider appearance] setThumbImage:[UIImage imageNamed:@"ball.png"] forState:UIControlStateNormal]; 
[slider setMinimumTrackImage:[[UIImage imageNamed:@"volume_slider_oragne.png"] stretchableImageWithLeftCapWidth:0.3 topCapHeight:0.0] forState:UIControlStateNormal]; 
[slider setMaximumTrackImage:[[UIImage imageNamed:@"volume_strap_gry.png"] stretchableImageWithLeftCapWidth:0.3 topCapHeight:0.0] forState:UIControlStateNormal]; 
+2

[[UISlider appearance] setThumbImage:[UIImage imageNamed:@“ball.png”] forState:UIControlStateHighlighted]; 以避免拇指在滑动时返回其原始图像。 – 2015-03-12 13:27:55