acercamiento y alejamiento de una UIView

¿Cuál es la mejor manera de acercar y alejar una UIView con un simple button de método? (ei

(IBAction)zoomin:(int)distance { method here } (IBAction)zoomout:(int)distance { and here } 

Se puede hacer usando dos reconocedores de gestos con el dedo: solo tiene que anotar:

 -(void)viewDidLoad { UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)] autorelease]; [[self view] addGestureRecognizer:twoFingerPinch]; } 

Con esto, has inicializado una instancia que se encargará de dos sensaciones de los dedos en la pantalla (o vista en la que estás aplicando este método). Ahora define qué hacer si has reconocido los dos dedos:

 - (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer { NSLog(@"Pinch scale: %f", recognizer.scale); CGAffineTransform transform = CGAffineTransformMakeScale(recognizer.scale, recognizer.scale); // you can implement any int/float value in context of what scale you want to zoom in or out self.view.transform = transform; } 

El método definido anteriormente se invoca automáticamente no a través de las acciones del UIButton, pero resolverá su problema con simplicidad. Si desea utilizar estrictamente el zoom en IBAction, simplemente haga esto:

  -(IBAction)methodCalledOnClickingUIButton:(id)sender { if(sender==zoomInButton) { scaleValue++; } else if(sender==zoomOutButton) { scaleValue--; } CGAffineTransform transform = CGAffineTransformMakeScale(scaleValue,scaleValue); self.view.transform = transform; } 

Donde scaleValue es cualquier valor de flotación … ¡puede configurarlo según su requisito de aplicación! ¡Espero que funcione bien para ti! 🙂