From e23e300087883f6f95b5481d3eb05add7d86a8fd Mon Sep 17 00:00:00 2001 From: Ole Begemann Date: Wed, 25 Jan 2012 17:33:38 +0100 Subject: [PATCH] Improve feel and fluidity of gesture recognition --- GestureRecognizers/ViewController.h | 2 +- GestureRecognizers/ViewController.m | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/GestureRecognizers/ViewController.h b/GestureRecognizers/ViewController.h index bed7cb7..eb01f1a 100644 --- a/GestureRecognizers/ViewController.h +++ b/GestureRecognizers/ViewController.h @@ -8,7 +8,7 @@ #import -@interface ViewController : UIViewController +@interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIImageView *imageView; diff --git a/GestureRecognizers/ViewController.m b/GestureRecognizers/ViewController.m index b9439ca..aba33a1 100644 --- a/GestureRecognizers/ViewController.m +++ b/GestureRecognizers/ViewController.m @@ -23,20 +23,23 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.imageView.userInteractionEnabled = YES; - UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panDetected:)]; - [self.imageView addGestureRecognizer:panRecognizer]; + [self.view addGestureRecognizer:panRecognizer]; UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchDetected:)]; - [self.imageView addGestureRecognizer:pinchRecognizer]; + [self.view addGestureRecognizer:pinchRecognizer]; UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationDetected:)]; - [self.imageView addGestureRecognizer:rotationRecognizer]; + [self.view addGestureRecognizer:rotationRecognizer]; UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)]; tapRecognizer.numberOfTapsRequired = 2; - [self.imageView addGestureRecognizer:tapRecognizer]; + [self.view addGestureRecognizer:tapRecognizer]; + + panRecognizer.delegate = self; + pinchRecognizer.delegate = self; + rotationRecognizer.delegate = self; + // We don't need a delegate for the tapRecognizer } - (void)viewDidUnload @@ -112,4 +115,12 @@ - (void)tapDetected:(UITapGestureRecognizer *)tapRecognizer }]; } + +#pragma mark - UIGestureRecognizerDelegate + +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer +{ + return YES; +} + @end