Tengo un UIImageView dentro de UIScrollView. Quiero que el usuario pueda acercar y navegar la imagen.Centrar un UIImageVer en la pantalla cuando aleje
Este es mi código de trabajo:
//img is the UIImageView
//scroller is the UIScrollView
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return img;
}
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"map_screen.png"];
img = [[UIImageView alloc] initWithImage:image];
scroller.delegate = self;
scroller.autoresizesSubviews = YES;
scroller.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
scroller.contentSize = img.frame.size;
scroller.scrollEnabled = YES;
scroller.directionalLockEnabled = NO;
scroller.userInteractionEnabled = YES;
CGSize ivsize = img.frame.size;
CGSize ssize = scroller.frame.size;
float scalex = ssize.width/ivsize.width;
float scaley = ssize.height/ivsize.height;
scroller.minimumZoomScale = fmin(1.0, fmax(scaley, scalex));
scroller.zoomScale = fmin(1.0, fmax(scalex, scaley));
[scroller addSubview:img];
img.userInteractionEnabled = YES;
}
todas las obras, pero esto sucedió: el zoom mínimo es la altura de la pantalla. Mi imagen tiene un ancho mayor que la altura, por lo que quiero que el zoom mínimo sea el ancho.
si escribo
scroller.minimumZoomScale = fmin(1.0, scalex);
obras, pero cuando el usuario se aleja, la imagen no está en el centro de la pantalla, pero en la parte superior.
he intentado algo como esto
CGPoint scrollCenter = [scroller center];
[img setCenter:CGPointMake(scrollCenter.x, scrollCenter.y)];
o
img.center = scroller.center;
pero con esta solución, la imagen no es completamente desplazable, y si i zoom hacia fuera, que se quede de nuevo en la parte superior de la pantalla, ¡pero no es completamente visible!
¿Qué puedo hacer para solucionarlo?
¡derecho! ¡funciona! ¡¡¡gracias!!! – JAA