50 votes

Images de suivi et de progression personnalisées UIProgressView dans iOS 7.1

iOS 7.1 semble avoir brisé l'image personnalisée de propriétés en UIProgressView. Code utilisé avec succès pour personnaliser les progrès vues maintenant les rendements de l'apparence par défaut.

- Je configurer un exemple de projet qui ne présente 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;

J'ai toujours l'apparence par défaut. J'ai franchi et vérifié qu' img est non-nul comme prévu. Ce qui se passe?

Mise à JOUR: Il y a un OpenRadar pour cela, et j'ai également déposé un radar de ma propre complète avec un exemple de projet.

Mise à JOUR 2: Comme l'a noté Axy ci-dessous, vous devez l'ajouter à obtenir le JEProgressView fonctionner correctement:

_progressBar.tintColor = [UIColor clearColor];

47voto

John Estropia Points 6718

C'est très ennuyeux. Je n'ai pas trouver un moyen de résoudre ce problème sans sous-classement UIProgressView.

De toute façon, voici comment j'ai résolu ce: https://gist.github.com/JohnEstropia/9482567

Vous aurez à changer les occurrences de UIProgressView de JEProgressView, y compris ceux des Plumes et des story-boards.

Fondamentalement, vous avez besoin de force assigner directement les images sur l' UIProgressViewenfants UIImageViews.

La sous-classe est nécessaire pour remplacer layoutSubviews, vous permet d'ajuster les hauteurs de la imageViews selon les tailles d'image.

5voto

matt Points 60113

Vous avez raison. Ce bogue est présent depuis que la 7.1 a fait son apparition pour la première fois dans Xcode 5.1 graine 1. J'ai soumis (et resoumis) le même bogue pour les 5 semences de Xcode 5.1, et maintenant sur Xcode 5.1. Mais Apple n'a pas résolu le problème.

S'il vous plaît soumettre ce bug aussi! Vous pouvez vous référer à mon bug si vous aimez: 15547259. Le plus sera le mieux! Je considère cela comme une casse grave, car cela signifie qu'une application qui fonctionnait bien est maintenant cassée (si elle utilise une vue de progression avec progressImage ).

3voto

Adhocdistro Points 31

Il y a un radar ouvert pour cela: http://openradar.io/16113307

2voto

Axy Points 42

J'ai utilisé la solution John Estropia, mais elle montrait la barre de teinte bleue dans la superposition avec un effet graphique assez étrange.

J'ai ajouté

_progressBar.tintColor = [UIColor clearColor];

et ça s'est très bien passé. Merci pour la solution man.

1voto

J'ai essayé d'implémenter les fichiers JEProgressView de John Estropia - mais cela ne fonctionne pas. J'ai dû faire quelque chose de mal - mais je suis un peu nouveau dans ce domaine. Quelqu'un peut-il expliquer exactement comment faire cela? Je sais que c'est peut-être une question stupide - mais après beaucoup de recherches sur Google, je pensais que demander était le seul moyen.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X