iOS - UISlider的自定义图像

时间:2012-07-05 16:02:05

标签: ios customization uislider

我想将图像用于UISlider轨道。我不希望拇指左侧有一种颜色,右侧则需要另一种颜色。我只想在整个轨道上放一个静态图像。可能的?

3 个答案:

答案 0 :(得分:16)

要将图像设置为滑块,您可以使用 setMinimumTrackImage setMaximumTrackImage 方法。根据您的要求,将两者设置为相同的图像。

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

答案 1 :(得分:5)

[[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 :(得分:0)

只需将两侧设为同一图像即可。如果你想要两端的圆角,你可能想要制作两个具有相同颜色/图案的单独图像。