Fiche 04.02 — Gestures essentielles : tap, long press, drag, swipe
Objectif
Savoir ajouter des interactions tactiles simples dans SwiftUI : tap, appui long, drag et swipe. Ces gestes permettent de créer des boutons custom, des cards déplaçables, des actions rapides ou des interactions plus naturelles.
1. Tap gesture
Le geste le plus simple est le tap.
Pour un vrai bouton, préfère Button, car il gère mieux l’accessibilité. onTapGesture est utile pour des composants custom.
2. Long press gesture
onLongPressGesture déclenche une action après un appui long.
Utile pour confirmer une action, afficher une option secondaire ou éviter un déclenchement accidentel.
3. DragGesture simple
DragGesture permet de suivre le déplacement du doigt.
Pendant le drag, on met à jour offset. À la fin, on remet la card à zéro.
4. Swipe horizontal simple
Tu peux détecter un swipe avec la translation horizontale.
C’est la base d’une interaction de type card Tinder, validation/refus, archive, etc.
5. Gesture et état métier
Une gesture ne doit pas contenir trop de logique métier.
Mauvais réflexe :
Meilleur réflexe :
Puis :
La vue reste lisible.
6. Gesture simultanée ou conflictuelle
Certaines gestures peuvent entrer en conflit avec ScrollView, List ou des boutons. Dans ce cas, il faut parfois utiliser :
Mais pour la majorité des écrans classiques, onTapGesture, onLongPressGesture et .gesture(DragGesture()) suffisent.
Points à connaître
Utilise Button quand l’élément est vraiment un bouton.
Utilise les gestures pour des interactions custom : card draggable, swipe, appui long, drag.
Ne mets pas trop de logique dans .onChanged ou .onEnded. Appelle plutôt une fonction.
Résumé
onTapGesturedétecte un tap simple.onLongPressGesturedétecte un appui long.DragGesturepermet de suivre le déplacement du doigt.- Un swipe peut être détecté avec
translation.width. - Les gestures doivent rester lisibles et reliées à un état clair.