UIPicker

J889J889 Membre
décembre 2014 modifié dans API UIKit #1
Bonjour,


Je débute avec les UIPicker et j'ai ai quelques questions.

Est il possible de mettre plusieurs UIPicker dans une view ?

Comment faire pour récuperer la sélection faites grâce un UIPicker pour par exemple afficher une view différente en fonction de la sélection ?


Merci

Réponses

  • J889J889 Membre
    décembre 2014 modifié #2
    Pour recuperer la valeur sélectionnée c' est ok.

    Par contre est-ce que ça se fait mettre plusieurs UIPicker dans une view ?

    Y a t il un autre moyen qui ressemble à  un UIPicker qui permette de faire des choix différents dans une view ?

    Par exemple dans une view on a le choix à  une première question entre 2 possibilités, ensuite un choix avec 3 possibilités et ensuite un choix avec 5 possibilités. Comme une liste déroulante sur le web. Tout ça sur une seule view.

    Y a t il un autre moyen que les UIPicker ?


    Merci
  • Oui techniquement on peut mettre plusieurs Picker view dans une vue. Mais c'est rapidement moche ces gros trucs qui prennent tant de place.


     


    Oui il y a d'autres moyens ; en particulier les contrôles segmentés (UISegmentedControl) plus adaptés à  mon avis pour 3 ou 4 choix que les Picker views.


  • AliGatorAliGator Membre, Modérateur
    C'est effectivement + une question d'ergo car côté technique ça ne pose aucune difficulté.


    Perso pour avoir une UX valable je ferais un push d'un UITableViewController pour chaque question pour présenter les choix. ça peut être la même classe de UITableViewController et à  chaque instantiation tu fournis la liste des choix car a part ça au niveau comportement c'est la même chose. ça reste assez classique.
  • Merci à  vous.


    Je vais voir de ces cotés la.


  • J889J889 Membre
    décembre 2014 modifié #6

    Une autre question à  propos de UIPicker.


    J'ai utilisé un UIPicker pour faire un choix entre 10 sélections possibles. Je place un texte au dessus dans le style "faites votre choix".


    Le problème c' est que il y a trop d' espace entre le texte et la première sélection possible dans le picker. Comment faire pour afficher la sélection que l' on veut dans le picker à  la place du première sélection ?


  • AliGatorAliGator Membre, Modérateur
    Je comprend pas trop la question. Quel rapport entre trop d'espace entre ton titre et ton picker, et choisir le premier item sélectionné ?

    Une petite image pour aider à  comprendre peut-être ?
  • J889J889 Membre
    décembre 2014 modifié #8

    Voilà  les deux images pour illustrer ce que je veux dire.


    Il faudrait commencer directement par sélection 5


  • Il faudrait commencer directement par sélection 5


  • Joanna CarterJoanna Carter Membre, Modérateur

    Au lieu d'un UIPicker, j'utiliserais un popover qui contient une UITableView, du coup, la liste n'occupe pas d'espace sauf si l'on active.


  • jpimbertjpimbert Membre
    décembre 2014 modifié #11

    Il faut donc sélectionner la ligne 5 du Picker View au moment opportun, par exemple au chargement de la Vue contenant le Picker.


     


    Traduit en CocoaTouch :


    Appeler la méthode selectRow:5 InComponent:0 animated:NO  sur l'instance de la classe UIPickerView dans la méthode viewDidLoad du contrôleur de vue.


  • J889J889 Membre
    décembre 2014 modifié #12

    Merci jpimbert.


    Ok Joanna. Mais je ne suis pas tellement TableView alors j' ai mis une view dont les dimensions s' allonge lorsqu' on sélectionne un bouton qui se trouve à  l' intérieur et qui laisse apparaitre les 9 autres boutons.


    Par contre lorsque je teste, la vue est à  la bonne dimension (un petit rectangle contenant le premier bouton) mais les 9 autres boutons sont visibles alors qu' ils ne devraient pas l' être puisque dans la partie "repliée" de la vue avant qu' on sélectionne le bouton qui fait déplier la vue.


     


    Quelqu' un saurait d' où vient le problème d' affichage ?


  • Il faut mettre la propriété clipsToBounds de la Vue à  YES " c'est NO par défaut " ou bien cocher la case Clip Subviews pour cette vue dans le storyboard ou le XIB.


  • Merci


Connectez-vous ou Inscrivez-vous pour répondre.