日々精進

新しく学んだことを書き留めていきます

UIImageViewに設定したGestureイベントが発生しない

以下のコードで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