2012-07-05 5 views
7

Ich möchte ein Bild für die UISlider-Spur verwenden. Ich will nicht eine Farbe auf der linken Seite des Daumens und eine andere Farbe auf der rechten Seite. Ich möchte nur ein statisches Bild über die gesamte Spur. Möglich?iOS - benutzerdefinierte Bild für UISlider

Antwort

16

Für das Bild auf Ihren Schieberegler einstellen können Sie den setMinimumTrackImage, setMaximumTrackImage Methoden. Für Ihre Anforderung setzen Sie beide auf das gleiche Bild.

iOS 5 und Below

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

Weitere bitte diese Links überprüfen:

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

Dank. Das funktioniert. Ich brauchte es nicht, um dehnbar zu sein, also benutzte ich nur imageNamed. – soleil

+0

danke für deinen Kommentar :) –

+1

'dreachableImageWithLeftCapWidth: topCapHeight:' ist veraltet. Ersetze es durch 'resizableImageWithCapInsets: UIEdgeInsetsMake (0, 7, 0, 7) resizingMode: UIImageResizingModeStretch'. –

0

Stellen Sie beide Seiten auf das gleiche Bild. Vielleicht möchten Sie zwei separate Bilder mit der gleichen Farbe/Muster, wenn Sie die abgerundeten Ecken an den Enden möchten.

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-Darstellung] setThumbImage: [UIImage imageNamed: @ "ball.png"] forState: UIControlStateHighlighted]; , um zu vermeiden, dass der Daumen beim Verschieben wieder in sein ursprüngliches Bild zurückkehrt. –