2010-03-06 5 views
5

Sto cercando di utilizzare un'immagine di traccia personalizzata per un UISlider ma è un'immagine asimmetrica da un'estremità del cursore all'altra.UISlider traccia immagine che non si allunga

Ho provato a impostare la mia immagine con leftCapWidth e così via, ma questo fa solo prendere un allungamento massimo e quindi inizia a diffondere un pixel di informazioni attraverso il cursore.

Mi piacerebbe un'immagine che non cambi affatto quando sposti il ​​cursore.

È possibile?

+2

Sono riuscito a ottenere temporaneamente il problema per ora creando un UIImageView e aggiungendo che al guarda dietro il cursore. Quindi ho impostato il trackimage per il dispositivo di scorrimento in bianco. Non è ideale però :( – Fogmeister

+0

Hai mai trovato una soluzione per questo? Ho provato a usare '[maxImage resizableImageWithCapInsets: UIEdgeInsetsZero resizingMode: UIImageResizingModeTile]' che funziona ma sembra posizionare il pollice sotto le immagini della traccia e ha circa 2px spazio vuoto su entrambe le estremità del cursore – sooper

+0

Se lo stavo facendo ora, lo farei da zero come controllo personalizzato, possibilmente usando PaintCode per disegnarlo. – Fogmeister

risposta

4

È possibile utilizzare questo per fare lo sfondo del UIslider personalizzato, fare l'UIslider come 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];