¿Cómo acercar un UIImageView dentro de un UIScrollView?

Tengo una UIImageView dentro de una UIScrollView y puedo desplazarme verticalmente, pero no desplazarme horizontalmente debido a cómo configuro el tamaño de contenido. Eso es exactamente lo que quiero.

Sin embargo, no puedo acercar y alejar. Puse la escala de zoom mínima y máxima, pero no funciona.

¿Alguien me puede decir por qué?

Gracias.

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //self.scrollView.scrollEnabled = YES; CGSize scrollableSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height); [self.scrollView setContentSize:scrollableSize]; UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test.png"] ]; tempImageView.frame = CGRectMake(0, 0, self.scrollView.frame.size.width, self.view.frame.size.height); self.scrollView.backgroundColor = [UIColor blackColor]; self.scrollView.minimumZoomScale = 1.0 ; self.scrollView.maximumZoomScale = tempImageView.image.size.width / self.scrollView.frame.size.width; self.scrollView.zoomScale = 1.0; self.scrollView.delegate = self; [self.scrollView addSubview:tempImageView]; } 

Tienes que implementar el siguiente método de delegado para hacer zoom:

 -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return self.imageView; } 

y asegúrese de agregar self.imageView a su self.scrollView en su lugar. Debe tener un aspecto como este:

 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. CGSize scrollableSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height); [self.scrollView setContentSize:scrollableSize]; self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test.png"] ]; self.imageView.frame = CGRectMake(0, 0, self.scrollView.frame.size.width, self.view.frame.size.height); self.scrollView.backgroundColor = [UIColor blackColor]; self.scrollView.minimumZoomScale = 1.0 ; self.scrollView.maximumZoomScale = self.imageView.image.size.width / self.scrollView.frame.size.width; self.scrollView.delegate = self; [self.scrollView addSubview:self.imageView]; } 

Para que el zoom funcione, debe proporcionar un método de delegado que devuelva la vista que desea ampliar:

 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return self.imageView } 

También tendrá que tempImageView para asignar tempImageView a una propiedad para que pueda consultarla aquí. Si no desea aferrarse a él en una propiedad, necesitará alguna otra forma de identificar la vista, por ejemplo, scrollView.subviews[0] si es la única subvista.

Intente esto Pruebe esto

[scroll setUserInteractionEnabled:YES];

Y su escala de zoom máxima es extraña. Prueba con 2,0 para probar.