2010-03-06 9 views
5

Estoy tratando de usar una imagen de pista personalizada para un UISlider pero es una imagen asimétrica de un extremo del control deslizante al otro.UISlider rastrea la imagen que no se estira

He intentado configurar mi imagen con leftCapWidth y así sucesivamente, pero esto simplemente lo hace tomar un estiramiento máximo y luego comienza a extender un píxel de información a través del control deslizante.

Me gustaría una imagen que no cambie en absoluto cuando mueva el control deslizante.

¿Es esto posible?

+2

He conseguido obtener temporalmente el problema por ahora creando una UIImageView y agregó que a la ver detrás del control deslizante. Luego configuré la imagen del deslizador en blanco. No es ideal :( – Fogmeister

+0

¿Alguna vez obtuviste una solución para esto? He intentado usar '[maxImage resizableImageWithCapInsets: UIEdgeInsetsZero resizingMode: UIImageResizingModeTile]' que funciona pero parece colocar el pulgar debajo de las imágenes de la pista y tiene aproximadamente 2px espacio en blanco en ambos extremos del control deslizante – sooper

+0

Si estuviera haciendo esto ahora, lo haría desde cero como mi propio control personalizado. Posiblemente usaría PaintCode para dibujarlo. – Fogmeister

Respuesta

4

Usted puede usar esto para hacer que el fondo de la costumbre UIslider, hacer que el UIslider como 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]; 
Cuestiones relacionadas