2010-03-06 6 views
5

Ich versuche, eine benutzerdefinierte Spur Bild für eine UISlider verwenden, aber es ist ein asymmetrisches Bild von einem Ende des Schiebers zum anderen.UISlider Spurbild, das nicht dehnt

Ich habe versucht, mein Bild mit leftCapWidth und so weiter einzurichten, aber das macht es nur eine maximale Dehnung und dann beginnt, ein Pixel von Infor über den Schieberegler zu verteilen.

Ich möchte ein Bild, das sich nicht ändert, wenn Sie den Schieberegler verschieben.

Ist das überhaupt möglich?

+2

Ich habe es geschafft, vorübergehend für jetzt, um das Problem zu erhalten, indem eine UIImageView zu schaffen und fügte hinzu, dass auf die Blick hinter den Schieberegler. Ich habe dann das Trackimage für den Schieberegler auf leer gesetzt. ? Obwohl Es ist nicht ideal ist :( – Fogmeister

+0

Haben Sie jemals eine Lösung dafür bekommen Ich habe versucht mit '[Maximage resizableImageWithCapInsets: UIEdgeInsetsZero resizingMode: UIImageResizingModeTile]', das funktioniert aber scheint den Daumen unterhalb der Spur Bilder zu platzieren und hat über 2px Leerzeichen an beiden Enden des Schiebereglers – sooper

+0

Wenn ich das jetzt tun würde, würde ich es von Grund auf als mein eigenes benutzerdefiniertes Steuerelement machen.Möglicherweise benutze ich PaintCode um es zu zeichnen. – Fogmeister

Antwort

4

diese Weise können Sie den Hintergrund des UISlider Gewohnheit zu machen, machen den UISlider als IBOutlet

[yourslider setThumbImage:[UIImage imageNamed:@"icon0.png"] forState:UIControlStateNormal]; 



yourslider.minimumValue=1; 
yourslider.maximumValue=10; 

UIImage *sliderLeftTrackImage = [[UIImage imageNamed: @"yellow_bg.png"] stretchableImageWithLeftCapWidth: 9 topCapHeight: 0]; 
UIImage *sliderRightTrackImage = [[UIImage imageNamed: @"yellow_bg.png"] stretchableImageWithLeftCapWidth: 9 topCapHeight: 0]; 

[yourslider setMinimumTrackImage: sliderLeftTrackImage forState: UIControlStateNormal]; 
[yourslider setMaximumTrackImage: sliderRightTrackImage forState: UIControlStateNormal];