Comment installer une barre de progression ?


#1

bonjour
Je me demandais comment intégrer une barre de progression dans un projet quiz.
A chaque réponse de l’utilisateur, la barre se complèterait jusqu’à ce qu’elle soit pleine.
Faut-il utiliser un objet progressView ? comment le configurer ?

merci


#2

Hello,

Oui j’utiliserais un UIProgressView pour le faire.
Ensuite, tu calcules ton nombre total de questions et au fur et à mesure des questions tu fais progresser ta barre.
C’est extrêmement simple à intégrer : tu mets ta ProgressView dans ton storyboard, tu la link dans ton code et ensuite pour faire avancer la progression, c’est
UIProgressView.progress = question n°x / nombre total de questions


#3

bonjour
Merci pour ta réponse.
J’ai fait des essais avec une UIProgressView et une UIView
Si j’ai bien une barre qui semble progresser dans les 2 cas, je n’arrive pas :

  • à avoir une couleur de fond différente de la couleur de remplissage , donc à paramétrer une barre qui se remplirait.
  • pour la UIProgressView, je n’arrive pas à changer les 2 couleurs comme il faudrait : une couleur “recouvrirait” l’autre

Là, j’ai plutôt une barre qui grandit à chaque clique sur le bouton.

Des idées pour régler cela ?

merci

EDIT : dans la doc, je vois qu’on peut paramétrer les couleurs avec :
var progressTintColor: UIColor?
et
var trackTintColor: UIColor?

Mais comment intégrer ces propriétés si c’est bien celles qu’il faut utiliser ?

EDIT 2 :
j’essaie un plan avec la View : superposer 2 barres, l’une recouvrant l’autre petit à petit : problème : elle passe “en dessous” au lieur de la cacher :frowning:


#4

De mémoire, la trackTintColor c’est pour indiquer le buffering de chargé pour une vidéo par exemple (comme sur YouTube, la différence entre rouge (là où tu te situes dans la vidéo) et le gris foncé (ce qui est chargé de la vidéo).

La mienne est paramétrée comme ça dans le storyboard
15

Et un UIProgressView.progress += 1.0/60.0 couplé à un timer permet de la faire progresser de la couleur verte toutes les secondes pendant 3 minutes.


#5

merci @Schtipoun.
J’ai relu avec attention ton 1er message, avec ton second et la documentation, j’ai ajouté la ligne de code
laBarre.progress = Float(partiesRemplies) / 10

Maintenant, ma barre progresse avec les couleurs choisies dans le storyboard.

En cherchant un peu, j’ai aussi trouvé comment faire passer une View par dessus une autre.

En revanche, pour la faire pivoter cette barre dans le storyboard afin de la mettre verticalement par exemple, comment fait-on ?

merci


#6

Je ferais quelque chose comme

UI_pairTimeProgressView.transform = CGAffineTransform(rotationAngle: CGFloat(.pi * 0.5))

à placer dans le ViewDidLoad ou ViewWillAppear.
Il te faudra certainement aussi jouer avec les contraintes car tu vas te retrouver avec une barre verticale en plein milieu de ton écran.