2012-03-22 2 views
1

Je travaille dans iOS5, et apparemment je devrais être capable de contrôler ou au moins soumettre la reconnaissance interne des gestes de pincement de UIScrollView en utilisant scrollView.pinchGestureRecognizer.iPhone iOS comment faire fonctionner UIScrollView avec UIRotationGestureRecognizer lorsque le zoom est activé?

Cependant, mon code ne semble pas fonctionner. Le programme de reconnaissance ne traite pas ma classe en tant que délégué et n'attend pas que mon outil de reconnaissance des gestes de rotation échoue. Que puis-je faire pour faire du geste de rotation une priorité, après quoi le pincement serait considéré? Plus précisément, le problème que je suis en train de courir est que la vue qui est tournée et zoomée en même temps "vole hors de l'écran" vers le coin en bas à gauche, pour ne jamais être revu.

-(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; 

     } 

    } 

Répondre

0

Pour autant que je sache, le pinchGestureRecognizer en UIScrollView est en lecture seule. Toutefois, vous pouvez essayer de sous-classe UIScrollView et remplacer la méthode addGestureRecognizer: pour désactiver le pinchGestureRecognizer, puis ajouter votre propre personnalisé pinchGestureRecognizer.

Questions connexes