Comment implémenter Swipe Gesture pour le randomiseur UIImageView
-
12-12-2019 - |
Question
J'ai parcouru de nombreux tutoriels et questions à ce sujet, mais je n'arrive pas à trouver ce que je cherche et j'ai le sentiment qu'il me manque juste une étape simple.J'apprends encore les ficelles du métier, alors soyez indulgents avec moi sur celui-ci.
Je crée un randomiseur d'images sur xcode 4.3.3 et j'ai pu le faire avec un bouton pour randomiser les images, mais je veux qu'il réponde à un geste de balayage.toute la fenêtre est couverte par un objet UIImageView, donc je veux juste une application qui randomise les images en glissant, donc je veux pouvoir faire glisser le UIImageview.voici ce que j'ai :
dans mon fichier .h :
@interface ViewController : UIViewController <UIGestureRecognizerDelegate> {
IBOutlet UIImageView *quotePage;
}
-(IBAction)random;
-(void)screenWasSwiped;
@end
et dans mon fichier .m :
@interface ViewController ()
@end
@implementation ViewController
-(IBAction)random {
int image = rand() % 4;
switch (image) {
case 0:
quotePage.image = [UIImage imageNamed:@"Quote1.png"];
break;
case 1:
quotePage.image = [UIImage imageNamed:@"Quote2.png"];
break;
case 2:
quotePage.image = [UIImage imageNamed:@"Quote3.png"];
break;
case 3:
quotePage.image = [UIImage imageNamed:@"Quote4.png"];
break;
default:
break;
}
}
-(void)viewDidLoad {
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(screenWasSwiped)];
swipeLeft.numberOfTouchesRequired = 1;
swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeLeft];
quotePage.userInteractionEnabled = YES;
}
@end
Je pensais qu'il serait possible de relier l'action « aléatoire » à un geste de balayage dans le storyboard, mais cela n'a pas fonctionné.le message du fil 1 est :
2012-07-27 15:04:32.012 QuoteRandom[1057:c07] -[ViewController screenWasSwiped] :sélecteur non reconnu envoyé à l'instance 0x6868210
je pense donc que je dois connecter « screenWasSwiped » au randomiseur d'image et également appliquer le geste de balayage à UIImageView mais j'ai du mal à le comprendre.J'apprécierais toute orientation!Merci d'avance!
La solution
Vous pouvez appeler votre -(IBAction)random
méthode dans votre UISwipeGestureRecognizer
le changer init
méthode pour :
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(random)];
De cette façon, chaque fois que vous glissez, vous obtiendrez une nouvelle image aléatoire.