以下のコードでUIImageViewに対するジェスチャーを取得しようとしたら、取得できず困った。
- (void)viewDidLoad{ [super viewDidLoad]; self.zoomInGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoomGestureUpdated:)]; UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGestureUpdated:)]; [self.chartImageView addGestureRecognizer:rotationGestureRecognizer]; [self.chartImageView addGestureRecognizer:self.zoomInGestureRecognizer]; self.chartImageView.multipleTouchEnabled = YES; self.zoomInGestureRecognizer.delegate = self; rotationGestureRecognizer.delegate = self; }
これはUIImageViewのuserInteractionEnabledがYESになっていないことが原因だった。
Interface BuilderからUIImageViewのuserInteractionEnabledをYESにしたら直った。
参考:ios - UIGestureRecognizer on UIImageView - Stack Overflow