Geste de reconnaissance (glisser) sur UIImageView
Je suis en train de NSLog quand j'ai glisser sur une UIImageView avec ce code mais il ne fonctionne pas pour une raison quelconque. Une idée ?
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"image2.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = [[UIScreen mainScreen] bounds];
[self.view addSubview:imageView];
UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)];
[recognizer setNumberOfTouchesRequired:1];
[imageView addGestureRecognizer:recognizer];
}
- (void)rightSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer {
NSLog(@"right swipe");
}
Vous devez vous connecter pour publier un commentaire.
Permettre UIImage vue de l'interaction de l'utilisateur qui est désactivé par défaut.
L'ajout d'un Geste de Balayage Événements
Manipulation Geste De Balayage Événements
else if
dans lehandleSwipe
fonction?Assurez-vous d'ajouter
imageView.userInteractionEnabled = YES;
après la création de votre UIImageView.Cela permet aux utilisateurs de interagir avec votre point de vue comme un robinet, faites glisser, glisser ou d'autres gestes.
Consultez la documentation ici.
Dans Swift 3
Différente de celle d'autres
UIViews
,UIImageView
, par défaut, est livré avec une interaction de l'utilisateurdisabled
. Inclure cette ligne dans votre code et le geste doit fonctionner comme prévu:Son utilisation de swift 4, les images sont récupérées à partir de votre bibliothèque de photos peut être glissé sur l'affichage de l'image à l'aide de geste de balayage.
J'ai été en cours d'exécution dans la difficulté avec cette où je pourrais obtenir le UISwipeGestureRecognizer de travailler si je l'ai ajouté à soi-même.la vue, mais non à l'individu UIImageView. Merci Jeff Ayan pour la Swift 3 exemple de code.
Si vous utilisez l'interface builder, vous pouvez également vérifier l'Interaction de l'Utilisateur case à cocher Activé pour la UIImageView sous les attributs de l'inspecteur.