2012-03-06 4 views
1

私はいくつかのアプリを見て、彼らは同時に画像を拡大縮小して回転させることができます。指のタッチを解除する必要はありません。 2.リリース 3.タッチiが拡大し、同時に回転するにはどうすればよいスムーズにスケールと回転を行う方法は?

を回転させるように拡張する 1.タッチ:

私の次のコードでは、必要に?私はあなたがこのhttp://www.raywenderlich.com/6567/uigesturerecognizer-tutorial-in-ios-5-pinches-pans-and-moreをチェックして、あなたが探していること

-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

答えて

3

であると考えている個々の規模で

UIPanGestureRecognizer *imagePanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveImage:)]; 
[imagePanGesture setMinimumNumberOfTouches:1]; 
[imagePanGesture setMaximumNumberOfTouches:1]; 
[tempImageView addGestureRecognizer:imagePanGesture]; 

UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scaleImage:)]; 
[tempImageView addGestureRecognizer:pinchGesture]; 

UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateImage:)]; 
[tempImageView addGestureRecognizer:rotationGesture]; 

- (void)scaleImage:(UIPinchGestureRecognizer *)recognizer 
{ 
    if([recognizer state] == UIGestureRecognizerStateEnded) 
    { 
     previousScale = 1.0; 
     return; 
    } 

    CGFloat newScale = 1.0 - (previousScale - [recognizer scale]); 

    CGAffineTransform currentTransformation = [recognizer view].transform; 
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransformation, newScale, newScale); 

    [[recognizer view] setTransform:newTransform]; 
    previousScale = [recognizer scale]; 
} 

- (void)rotateImage:(UIRotationGestureRecognizer *)recognizer 
{ 
    if([recognizer state] == UIGestureRecognizerStateEnded) { 


      previousRotation = 0.0; 
      return; 
     } 

     CGFloat newRotation = 0.0 - (previousRotation - [recognizer rotation]); 

     CGAffineTransform currentTransformation = [recognizer view].transform; 
     CGAffineTransform newTransform = CGAffineTransformRotate(currentTransformation, newRotation); 

     [[recognizer view] setTransform:newTransform]; 

     previousRotation = [recognizer rotation]; 
    } 
+0

ありがとう!これは私が探しているワットです。 – RockBaby

1

を回転させる:

私のメインのコードで


0

これはあなたが探しているコードです... .mファイルにこのメソッドを追加してください。

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 
関連する問題