iphone - doesn - Acercar correctamente un UIScrollView que contiene muchas subvistas
uiscrollview ios (3)
Creé la vista donde agregué todo usando:
UIView *zoomableView = [[UIView alloc] init];
Sin establecer su marco.
El problema se resolvió cuando, después de agregarle todas las subvistas, establecí su marco en algo lo suficientemente grande como para acomodar todas las subvistas en mosaico.
Creé un UIScrollView con zoom y le agregué 100 subvistas (en mosaico). La vista se desplaza perfectamente hacia la izquierda y hacia la derecha. Sin embargo, me gustaría permitir el zoom.
Para ello leí que mi delegado necesita implementar:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return ???;
}
He visto ejemplos que solo tienen una subvista para ampliar, por lo que devuelven esa subvista en ese método. En mi caso, sin embargo, tengo mucho más. ¿Cuál es la forma correcta de hacer el zoom?
Intenté crear otra UIView y agregar las 100 subvistas a esa. Y luego devuelva esa vista en el método anterior, pero no funciona (se amplía pero una vez que se detiene, ya no es interactivo).
Exactamente,
Esto es lo que Apple también menciona en la Guía de programación de la vista de desplazamiento :
Simplemente cree una vista, agregue todas las subvistas a esta vista y agregue la vista recién creada como una subvista única a la vista de desplazamiento ...
Luego, en el método delegado viewForZoomingInScrollView, devuelva el objeto en el índice 0:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return [self.scrollView.subviews objectAtIndex:0];
}
Tiene que devolver lo que va a agregar vistas para desplazar la vista como subvistas.
Por ejemplo: si está agregando vista de imagen a vista de desplazamiento, escriba
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imageView object;
}