2012-07-05 70 views
7

我想爲UISlider軌道使用圖像。我不希望拇指左側有一種顏色,右側有另一種顏色。我只想在整個軌道上有一張靜態圖像。可能?iOS - UISlider的自定義圖像

回答

16

對於圖像設置爲您的滑塊就可以使用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

0

只需將雙方設置爲相同的圖像。如果您想要兩端的圓角,您可能需要使用相同的顏色/圖案製作兩張獨立的圖像。

4
[[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