UIProgressView seguimiento personalizado e imágenes de progreso en iOS 7.1

iOS 7.1 parece haber roto las properties de image personalizadas en UIProgressView . El código que solía personalizar vistas de progreso ahora produce el aspecto pnetworkingeterminado.

Configuré 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 tengo la apariencia pnetworkingeterminada. Entro y verifiqué que img es no-nil como se esperaba. ¿Que esta pasando?

ACTUALIZACIÓN: hay un OpenRadar para esto, y también he archivado un radar completo con un proyecto de ejemplo.

ACTUALIZACIÓN 2: Como lo indica Axy a continuación, debe agregar esto para que JEProgressView funcione correctamente:

 _progressBar.tintColor = [UIColor clearColor]; 

Esto es muy molesto. No encontré una manera de solucionar esto sin subclass UIProgressView .

De todos modos así es como arreglé esto: https://gist.github.com/JohnEstropia/9482567

Tendrá que cambiar las apariciones de UIProgressView a JEProgressView , incluidas las de NIB y storyboards.

Básicamente, necesitará forzar la asignación de las imágenes directamente a los UIProgressView s de los niños UIImageView .

La subclass es necesaria para anular las layoutSubviews , donde ajusta las alturas de las imágenes según los tamaños de image.

Estás en lo correcto. Este error ha estado presente desde que 7.1 apareció por primera vez en la semilla Xcode 5.1. Presenté (y volví a enviar) el mismo error para todas las 5 semillas de Xcode 5.1 y ahora en Xcode 5.1. Pero Apple no lo solucionó.

Por favor envíe este error también! Puede consultar mi error si lo desea: 15547259. ¡Cuanto más, mejor! Considero esto una rotura seria, porque significa que una aplicación que funcionaba bien ahora está rota (si usa una vista de progreso con una image de progressImage ).

Utilicé la solución de John Estropia, pero mostraba la barra de tinte azul en superposition con la mía, con un efecto gráfico bastante extraño.

yo añadí

_progressBar.tintColor = [UIColor clearColor];

y fue bien. Gracias por la solución hombre.

Hola amigos, he usado el siguiente código para agregar UIProgressView en mi aplicación:

 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]; 

Espero que el código te sea útil, lo encontré aquí: Fuente de Código

He intentado implementar los files JEProgressView de John Estropia, pero no funciona. Debo haber hecho algo mal, pero soy un poco nuevo en esto. ¿Alguien puede explicar exactamente cómo hacer esto? Sé que podría ser una pregunta estúpida, pero después de muchas búsquedas en Google pensé que pedir era la única manera.

También estoy atrapado este error. Traté de solucionarlo jugando con properties UIProgressView pero sin resultado. La solución de John's Estropia publicada anteriormente, también no funciona para mí, tal vez no sea compatible con el layout automático, por lo que hice mi propia solución temporal para evitar este error. https://github.com/ninjaproger/AKProgressView

Para mí esto funcionó para iOS versión 7.1 y superior para la image de progreso:

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

Con Xcode5 ahora es posible hacer imágenes networkingimensionables con Interface Builder también. Podemos especificar la dirección de cambio de tamaño y el recuadro de contenido y seleccionar el área de la derecha en el generador de interfaces.

Para aprovechar esta function, ha utilizado Asset Catalog para la image que desea cambiar de tamaño. introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí