iOS 7.1 parece haber roto la costumbre de propiedades de la imagen en UIProgressView. Código utilizado con éxito para personalizar el progreso vistas ahora los rendimientos de la apariencia predeterminada.

Puedo configurar un proyecto de ejemplo que hace esto en viewDidLoad:

self.progressView.frame = CGRectMake(self.progressView.frame.origin.x, self.progressView.frame.origin.y, self.progressView.frame.size.width, 9);
UIImage *img = [UIImage imageNamed:@"progress_bar_fill.png"];
img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)];
self.progressView.progressImage = img;

img = [UIImage imageNamed:@"progress_bar_empty.png"];
img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)];
self.progressView.trackImage = img;

Todavía me dan la apariencia predeterminada. Me he metido por medio y verificado que img es no-nil como se esperaba. ¿Qué está pasando?

ACTUALIZACIÓN: Hay un OpenRadar para esto, y también he presentado un radar de mi propia completa con un proyecto de ejemplo.

ACTUALIZACIÓN 2: Como señaló Axy a continuación, usted tiene que agregar esto para obtener el JEProgressView para que funcione correctamente:

_progressBar.tintColor = [UIColor clearColor];
  • Realmente no me gusta correcciones (a pesar de que pueden trabajar, y voy a tener que usar de todos modos). ¿Cómo podemos saber / ser notificado cuando este se fija oficialmente ?
  • Yo apostaría que será corregido en la próxima actualización de iOS. Y te escucho gritar desde los tejados.
InformationsquelleAutor Tom Hamming | 2014-03-10

8 Comentarios

  1. 47

    Esto es muy molesto. No he encontrado una manera de arreglar esto sin subclases UIProgressView.

    De todos modos he aquí cómo he arreglado esto: https://gist.github.com/JohnEstropia/9482567

    Usted tendrá que cambiar las apariciones de UIProgressView a JEProgressView, incluyendo aquellos en Puntas y storyboards.

    Básicamente, usted necesita para forzar la asignación de las imágenes directamente a la UIProgressView‘s de los niños UIImageViews.

    La subclase es necesaria para anular layoutSubviews, donde puede ajustar la altura de la imageViews de acuerdo a los tamaños de la imagen.

    • Gran googamooga, funcionó! Tuve que quitar .origen.y las asignaciones para el seguimiento y progreso de los cuadros de imagen para obtener la posición correcta, pero aparte de que funciona muy bien.
    • Usted señor es un caballero y un erudito.
    • Me encanta cuando alguien publica una implementación completa de una solución. Gran trabajo.
  2. 5

    Estás en lo correcto. Este error ha estado presente desde 7.1 primero hizo su aparición en Xcode 5.1 de la semilla 1. He presentado (y volvió a presentar el mismo error para todas las 5 semillas de Xcode 5.1, y ahora en Xcode 5.1. Pero Apple no arreglarlo.

    Por favor enviar este error también! Usted puede consultar mi error si te gusta: 15547259. Cuanto más, mejor! Considero esto como la rotura seria, porque significa que una aplicación que estaba funcionando bien, ahora está roto (si se utiliza una vista de progreso con un progressImage).

    • ¿Por qué Apple ignorar esto todo el tiempo?
    • A partir de hoy (oct 2014) el error está todavía en iOS 8. Aún no se soluciona.
    • Y aún en iOS 8.1.
    • Todavía en iOS 8.4 parece.
    • Pero fijo en iOS 9!
  3. 2

    He usado John Estropia solución, pero estaba mostrando el blu matiz de la barra en la superposición de la mina, con un extraño efecto gráfico.

    He añadido

    _progressBar.tintColor = [UIColor clearColor];

    y me fue muy bien. Gracias por la solución al hombre.

    • Tuve que hacer la misma cosa.
    • No funciona, lo interesante es que cuando se establece en el guión gráfico para clearColor y durante la depuración se remonta a gris color (impresión de la toma de corriente en la consola), pero luego se establece en viewDidLoad a clearColor – El conjunto funcionó, pero que aún muestra en color gris.
  4. 2

    Hola amigos he usado el siguiente código para agregar UIProgressView en mi app:

    UIProgressView *progressView;
    progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];      
    progressView.progressTintColor[UIColor colorWithRed:187.0/255 green:160.0/255 blue:209.0/255 alpha:1.0];
    [[progressView layer]setCornerRadius:10.0f];
    [[progressView layer]setBorderWidth:2.0f];
    [[progressView layer]setMasksToBounds:TRUE];
    progressView.clipsToBounds = YES;
    [[progressView layer]setFrame:CGRectMake(30, 295, 260, 25)];[[progressView     layer]setBorderColor[UIColor whiteColor].CGColor]; 
    progressView.trackTintColor = [UIColor clearColor];
    [progressView setProgress: (float)count/15 animated:YES];

    La esperanza de que el código va a ser de ayuda, me encontré aquí : Fuente de Código

  5. 1

    He tratado de aplicar la JEProgressView archivos de Juan Estropia – pero no funciona. Debo haber hecho algo mal, pero soy un poco nuevo en esto. Puede alguien explicar exactamente cómo hacer esto? Sé que puede ser una pregunta estúpida – pero después de mucho googlear pensé que preguntaba era la única manera.

  6. 0

    También estoy apresado este error. He intentado solucionarlo jugando con UIProgressView propiedades, pero sin resultado. Juan Estropia solución publicado anteriormente, también no trabajo para mí, tal vez no soporte de diseño automático, así que hice mi propia solución temporal para pasar por encima de este error. https://github.com/ninjaproger/AKProgressView

  7. 0

    Para mí esto trabajó para la versión de iOS 7.1 y superiores para el progreso de imagen:

    if ([[UIDevice currentDevice] systemVersion] >= 7)
        self.progressView.tintColor = [UIColor colorWithPatternImage:img];
  8. 0

    Con Xcode5 ahora es posible hacer puede cambiar de tamaño las imágenes con Interface Builder demasiado. Podemos especificar el tamaño de la dirección y el contenido del recuadro y seleccione la zona de estar strecthed a la derecha dentro de la interface builder.

    Para hacer uso de esta característica, usted tiene el uso Asset Catalog de la imagen que desea cambiar de tamaño.
    UIProgressView un seguimiento personalizado y el progreso de las imágenes en iOS 7.1
    UIProgressView un seguimiento personalizado y el progreso de las imágenes en iOS 7.1
    UIProgressView un seguimiento personalizado y el progreso de las imágenes en iOS 7.1
    UIProgressView un seguimiento personalizado y el progreso de las imágenes en iOS 7.1

Dejar respuesta

Please enter your comment!
Please enter your name here