私は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;
}
}