Estoy experimentando con algunas propiedades nuevas en iOS 5 con respecto a UIProgressView. Ellos son:

@property(nonatomic, retain) UIImage *progressImage;

@property(nonatomic, retain) UIImage *trackImage;

Estas nuevas propiedades permiten la personalización de la «el progreso» y el «pista» de la imagen, por lo que usted puede hacer apetece barras de progreso sin tener que liar.

Yo sin embargo no puede entender cómo Apple «se extiende» el progreso de las imágenes, debido a que la documentación es un poco flakey /O hay alguna norma que no soy consciente de. Independientemente, me estoy preguntando si alguien me puede ayudar a entender cómo hacer el adecuado desarrollo y seguimiento de las imágenes.

Puedo obtener resultados como este cuando puedo cargar mis imágenes personalizadas, no importa de qué tamaño trato:

UIProgressView y un Seguimiento Personalizado y el Progreso de las Imágenes (iOS 5 propiedades)

Mis medidas son como sigue:

  • UIProgressView longitud: 226 unidades
  • trackingImage.png: 10px
  • progressImage.png: 7px

Por último, aquí están mis imágenes personalizadas:

UIProgressView y un Seguimiento Personalizado y el Progreso de las Imágenes (iOS 5 propiedades) progressImage.png

UIProgressView y un Seguimiento Personalizado y el Progreso de las Imágenes (iOS 5 propiedades) trackImage.png

InformationsquelleAutor Sean | 2011-11-02

1 Comentario

  1. 110

    Aquí es lo que está pasando:

    Las imágenes que proporciona a la UIProgressView son básicamente se metió en UIImageViews, y el UIImageView es estirar la imagen para llenar el espacio.

    Si simplemente hacer:

    [progressView setTrackImage:[UIImage imageNamed:@"track.png"]];

    Entonces usted va a obtener resultados extraños, porque está tratando de estirar un 10px amplia la imagen para relleno (por ejemplo) un 100px de ancho de la imagen vista. Esto significa que (aproximadamente) de que cada píxel en la imagen se repite 10 veces. Así que si los píxeles de nuestra imagen fueron:

    0123456789

    A continuación, poner la imagen directamente en un 100px de ancho de la imagen vista de estirar algo como esto:

    000000000011111111112222222222333333333344444444445555555555...

    Esto es lo que está sucediendo.

    Lo que realmente queremos que suceda es este:

    01234567812345678123456781234567812345678...123456789

    En otras palabras, se desea que la imagen tenga un 1 punto de borde izquierdo que nunca se extendió, en el centro de mosaico, y a tener un 1 punto derecho de borde que nunca está estirada. Para ello, tendrás que hacer que la imagen de tamaño variable:

    UIImage *track = [[UIImage imageNamed:@"track"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 1)];
    [progressView setTrackImage:track];

    Si quieres que esto azulejo adecuadamente vertical y, a continuación, el borde de los márgenes deben ser {1, 1, 1, 1} (suponiendo que desea un 1 punto de borde).

    Hacer lo mismo para el progressImage, y usted va a terminar con algo que parece correcta:

    UIProgressView y un Seguimiento Personalizado y el Progreso de las Imágenes (iOS 5 propiedades)

    tl;dr:

    Sus imágenes deben ser de tamaño variable.

    • Tú, señor, eres un Dios.
    • puedo dar más puntos a la anterior comentario? @Sean LOL
    • De acuerdo a los instrumentos, esto es una fuga. Estoy usando el arco. Es alguien más tiene el mismo problema? Parece que podría ser un UIProgressView error.
    • por alguna razón, esta es sólo la fabricación de la pista de imagen de tamaño variable y no el progreso real de la imagen, pero estoy configurar cada uno de la misma manera.
    • sí, usted necesita para hacer el progressImage un tamaño variable de la imagen así.
    • son la misma imagen, sólo diferentes colores. He vuelto a revisar y se sustituye el setTrackImage: y setProgressImage: variables (carga y seguimiento, tanto uiimages configurado de la misma manera a partir de la misma imagen), y en ambos casos, el progreso de la imagen no funciona, pero la pista de la imagen hizo. …?
    • suena como un gran material para una nueva pregunta
    • buena idea. nueva pregunta here:
    • Y si usted desea utilizar una pista de imagen con un tamaño específico. No se puede cambiar de tamaño? ¿Cómo puedo ajustar el progreso defecto de la línea azul?
    • Esta es una excelente explicación de píxel de escala. 10/10

Dejar respuesta

Please enter your comment!
Please enter your name here