web-dev-qa-db-fra.com

Un menu déroulant ou déroulant pour iOS?

Dans mon application iOS, je dois utiliser le menu déroulant ou déroulant. Je ne veux pas utiliser la feuille d'action ou la vue de sélecteur.

Existe-t-il un menu déroulant ou déroulant pour iOS?

Merci.

22
user403015

Non, il n'y a rien de tel dans le SDK iOS et c'est pour une bonne raison - ces éléments ne sont tout simplement pas jolis, géniaux et utilisables assez bien lorsqu'ils agissent sur un écran tactile.

Pensez à utiliser à la place UIPickerView ou UISegmentedControl.

Mais si vous insistez, consultez des sites comme Cocoa Controls pour certains dérivés. Certains d'entre eux sont en fait bien faits.

17
Till

Vous voudrez peut-être vérifier la vue PullableView discutée ici

Il s'agit d'un exemple d'image avec une vue tirable du haut, du bas et du côté gauche. Celui du bas est déjà ouvert.

sample app

10
Sergio

Je ne suis pas d'accord qu'une liste déroulante est nécessairement mauvaise sur l'iPad. Le sélecteur Apple est horrible. Mais tout dépend vraiment du type et de la quantité de données à afficher.

Je viens de trouver cette liste déroulante et elle semble/fonctionne assez bien: http://blog.lemberg.co.uk/iphone-development/custom-dropdown-list/

8
No Grabbing

Je ne vois pas vraiment quel est le problème avec l'utilisation d'un "menu déroulant" tant qu'il est assez grand pour être utilisé. J'en ai fait un qui utilise une vue de table, il est beaucoup plus rapide, plus facile à utiliser et moins visuellement abusif que le sélecteur par défaut. Chaque fois que je vois l'un de ces sélecteurs par défaut, cela me fait grincer des dents, ils ont l'air horrible et ils prennent trop de temps à utiliser. Cela ne prend vraiment pas beaucoup de code, je ne sais pas pourquoi plus de gens ne les utilisent pas.

Fondamentalement, ce que vous faites est de créer un bouton qui ressemble à une liste déroulante, puis de l'activer et de le faire glisser dans une vue tabulaire lorsque le bouton est activé. Implémentez les méthodes de délégué normales comme d'habitude pour gérer la sélection des éléments, puis faites-la glisser à nouveau.

Assurez-vous simplement de placer la vue de la table devant tout le reste afin qu'elle ne soit pas coupée ou masquée par d'autres éléments.

Cela dépend cependant de ce que vous choisissez, il y a encore des endroits où je ne sais pas comment j'éviterais d'utiliser un sélecteur.

6
linuxfreakus

La feuille d'action est essentiellement une liste déroulante si vous y pensez. Et si vous continuez à ajouter des boutons à une feuille UIActionSheet, cela finit par se transformer en tableau. Il suffit donc que votre bouton appelle une feuille UIActionSheet.

Essayez d'ajouter 7 boutons ou plus à la feuille UIActionSheet et regardez-la se transformer en liste. C'est pratique. Cette photo peut être utile pour démontrer ce que je veux dire:

enter image description here

3
j2emanue

Vous pouvez mettre une vue de table dans un "popover". Popover est uniquement pour iPad.

enter image description here

Comme je l'ai dit plus haut, cette construction est probablement la meilleure que vous puissiez faire sur un écran tactile. Pensez à une liste déroulante qui nécessite un défilement . Le comportement par défaut du navigateur est de cliquer une fois pour ouvrir le menu, le deuxième clic fait les deux sélectionnez et fermez le menu.

-

Mais vous ne pouvez pas avoir cela exactement sur des appareils tactiles, non sans quelques modifications. Parce que les écrans tactiles n'ont pas de survol, pour faire défiler la liste, vous devez soit:

  • Ajoutez une barre de défilement , ou quelque chose d'autre pour empêcher les contacts censé faire défiler de simplement exécuter le comportement "sélectionner et fermer" . Les barres de défilement sont incompatibles avec les interfaces d'écran tactile standard.
  • Pour nécessiter une sorte de comportement presser et maintenir pour exécuter le comportement sélectionner et fermer qui est ennuyeux, et aussi non standard. Les utilisateurs s'attendent à ce que les touches soient sélectionnées immédiatement, sans avoir à les maintenir enfoncées.
  • OU mettez un bouton OK en haut à droite pour fermer la fenêtre, comme Apple l'a fait dans ce Popover montré ci-dessus.

Voir tous les contrôles iOS ici

2
bobobobo

Utilisez tableview comme suggestion de KartikArora et en combinaison avec un contrôleur popover pour iPad.

2
user523234

Peut-être qu'un popover est ce que vous voulez ..

WYPopoverController

https://github.com/nicolaschengdev/WYPopoverController

enter image description here

enter image description here

1
keithics

Non, il n'y a rien de tel dans le SDK iOS mais vous pouvez utiliser la vue de table comme une liste déroulante .. pour cela, vous devez régler le cadre de la vue de table et l'afficher comme une liste déroulante ..

1
Kartik