2012-03-22 12 views
1

私はiOS5で作業しています。明らかに、scrollView.pinchGestureRecognizerを使用してUIScrollViewの内部ピンチジェスチャ認識機能を制御したり、少なくとも抑止できるはずです。iPhone iOSズームを有効にするとUIRotationGestureRecognizerでUIScrollViewを動作させる方法は?

しかし、私のコードは動作していないようです。レコグナイザはクラスをデリゲートとして扱わず、ローテーションジェスチャ認識ツールが失敗するのを待っていません。回転のジェスチャーを優先させるにはどうしたらいいですか?その後、ピンチが考慮されますか?

もっと正確には、私が実行している問題は、同時に回転してズームしているビューが左下に向かって「画面から飛び出している」ということです。私の知る限りでは

-(void)setup scrollViews 
{ 
     [tempScrollView.pinchGestureRecognizer requireGestureRecognizerToFail:rotationRecognizer]; 
     tempScrollView.pinchGestureRecognizer.delegate = self; 

     tempScrollView.maximumZoomScale = 4.0; 
     tempScrollView.minimumZoomScale = 0.25; 
//   
     tempScrollView.delegate = self; 
} 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 

    if([gestureRecognizer isEqual:rotationRecognizer]) 
    { 
     NSLog(@"Rotation gesture"); 
    }else { 
     NSLog(@"Other gesture: %@", [gestureRecognizer class]); 
    } 
    return YES; 

} 

    - (IBAction)rotateView:(id)sender { 

     if([sender isKindOfClass:[UIRotationGestureRecognizer class]]) 
     { 
      UIRotationGestureRecognizer* recognizer = sender; 

      float recognizerRotation = [recognizer rotation]; 
      CGAffineTransform transform = CGAffineTransformMakeRotation(recognizerRotation); 
    activeView.transform = transform; 

     } 

    } 

答えて

0

UIScrollViewpinchGestureRecognizerは読み取り専用です。 UIScrollViewをサブクラス化し、addGestureRecognizer:メソッドをオーバーライドしてpinchGestureRecognizerを無効にしてから、独自のカスタムpinchGestureRecognizerを追加することもできます。

関連する問題