Vidéo: Google Lens Enfin Disponible Sur iOS iPhone iPad L’outil De Reconnaissance Visuelle 2025
Si vous voulez vraiment comprendre l'expérience utilisateur iOS et son rapport avec votre application, vous besoin de comprendre l'importance des gestes. UIKit inclut des outils de reconnaissance de gestes que vous pouvez utiliser dans votre application. Vous allez utiliser UIKit pour ajouter un outil de reconnaissance de gestes à la vue principale afin que l'utilisateur puisse balayer vers la gauche pour faire apparaître la vue Test Drive.
L'ajout de la fonction de reconnaissance des gestes est facile pour l'iPhone et l'iPad. Dans MasterViewControlle. m, ajoutez le code en gras à viewDidLoad.
- (void) viewDidLoad {[super viewDidLoad]; AppDelegate * appDelegate = [[délégué UIApplication sharedApplication]]; soi. title = appDelegate. voyage. destinationName; UIImageView * imageView = [[UIImageView alloc] initWithImage: [appDelegate. destination de destinationImage]]; soi. tableView. backgroundView = imageView; _detailViewController = (DetailViewController *) [[self. splitViewController. viewControllers lastObject] topViewController]; UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: action self: @selector (handleSwipeGesture:)]; swipeGesture. direction = UISwipeGestureRecognizerDirectionLeft;
UISwipeGestureRecognizer est une sous-classe de UIGestureRecognizer - la classe de base abstraite pour les classes concrètes de reconnaissance de gestes. L'outil de reconnaissance de gestes effectue le travail difficile de reconnaître un geste spécifique et envoie ensuite un message d'action (que vous spécifiez) à la cible (que vous spécifiez également) pour aller de l'avant et faire quelque chose.
En plus de UISwipeGestureRecognizer, vous avez des outils de reconnaissance de gestes pour
-
Tap: UITapGestureRecognizer
-
Pinch: UIPinchGestureRecognizer
-
Rotation: UIRotationGestureRecognizer
-
Pan: UIPanGestureRecognizer
-
Touchez et maintenez: UILongPressGestureRecognizer
Une fenêtre délivre des événements tactiles à un outil de reconnaissance de gestes avant de les transmettre à la vue testée par le clavardage - la vue où elle a déterminé que l'utilisateur a touché - attachée au détecteur de mouvement. (Notez que le détecteur de mouvement est attaché à la vue et ne fait pas partie de la chaîne du répondeur.)
Généralement, si un outil de reconnaissance de gestes ne reconnaît pas son geste, les touches sont transmises à la vue. Si un détecteur de mouvement reconnaît son geste, les touches restantes de la vue sont annulées.
UISwipeGestureRecognizer est une sous-classe concrète de UIGestureRecognizer qui recherche les gestes de balayage dans une ou plusieurs directions. Parce qu'un balayage est un geste discret, le message d'action est envoyé une seule fois par geste.
UISsipeGestureRecognizer reconnaît un mouvement comme un glissement lorsque le nombre de touches spécifié (numberOfTouchesRequired) a été déplacé dans une direction (direction) assez loin pour être considéré comme un glissement. Vous pouvez configurer le programme de reconnaissance UISwipe GestureRecognizer pour le nombre de touches (la valeur par défaut est 1) et la direction (la valeur par défaut), comme suit:
UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: selfaction: @selector (handleSwipeGesture:)];
Ici, vous créez un mouvement de balayage avec une cible de soi et une action de handleSwipeGesture:. Cela signifie que lorsque le détecteur de mouvement détermine qu'il s'agit d'un balayage, il enverra le handleSwipeGesture: au MasterViewController (self dans ce cas).
Ensuite, comme vous voulez que l'utilisateur balaye vers la gauche pour faire apparaître la vue Test Drive, définissez la direction à gauche par défaut, comme suit:
swipeGesture. direction = UISwipeGestureRecognizerDirectionLeft;
Pour gérer l'effet de balayage, programmez la réponse que vous voulez obtenir lors du balayage - ajoutez le code à MasterViewController. m.
Ce que vous faites ici est d'abord trouver le storyboard dans le bundle - dans iOS (et OS X), un bundle est un répertoire qui semble être un fichier unique et contient le code exécutable, des ressources telles comme les images et le son, et les fichiers nib (storyboard).
UIStoryboard * storyboard = [UIStoryboard storyboardWithName: @ "Main_iPad" & # x2029; faisceau: néant];
Ensuite, le code crée TestDriveController. C'est la même chose que le storyboard (dans la logique de segue) lorsque vous appuyez sur le bouton Test Drive:
UIViewController * viewController = [storyboard instantiateViewControllerWithIdentifier: @ "TestDrive"];
Voici où cet identifiant est nécessaire. C'est la seule façon de trouver le contrôleur de vue que vous avez configuré dans le storyboard.
Ensuite, vous dites au contrôleur de navigation de pousser le contrôleur View sur la pile (notez que cette méthode met également à jour la barre de navigation) et de faire glisser sa vue en place. (Si le paramètre animé est YES, la vue est animée en position, sinon la vue est simplement affichée.)
[[self navigationController] pushViewController: viewController animé: YES];
C'est ce qui aurait été fait pour vous dans la logique de segue générée par le storyboard.
Vous avez uniquement installé le geste Glissement dans le contrôleur de la vue principale. Lorsque vous êtes dans la vue Test Drive, vous pouvez uniquement revenir en arrière en utilisant le bouton Back (New York City). En concevant une interface, la cohérence et la symétrie sont de bonnes caractéristiques à rechercher. Si vous glissez dans une vue, vous devriez peut-être faire glisser votre doigt hors d'une vue. C'est ainsi que vous construisez des interfaces puissantes, intuitives et faciles à apprendre.
