2010-04-21 22 views
6

Utilizo el siguiente código para cargar una imagen en una vista de desplazamiento. La imagen siempre se carga con un zoom del 100%. ¿Hay alguna manera de configurarlo para que se cargue a otro nivel de zoom, digamos .37?iphone uiscrollview y uiimageview - configuración de zoom inicial

He tratado scrollView.zoomScale = 0,37, pero no parecía que trabajar

UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]]; 
     self.imageView = tempImage; 

     scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height); 
     scrollView.maximumZoomScale = 1; 
     scrollView.minimumZoomScale = .37; 
     scrollView.clipsToBounds = YES; 
     scrollView.delegate = self; 

     [scrollView addSubview:imageView]; 

Respuesta

11

Me di cuenta ... Estaba usando scrollView.zoomScale = 0.37; antes de cargar el código cambiado de imagen y funciona muy bien.

UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]]; 
self.imageView = tempImage; 

scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height); 
scrollView.maximumZoomScale = 1; 
scrollView.minimumZoomScale = .37; 
scrollView.clipsToBounds = YES; 
scrollView.delegate = self; 
[scrollView addSubview:imageView]; 
scrollView.zoomScale = .37; 
3

Hay una zoomScale property que se puede establecer.

+2

pero tome en cuenta que como Brodie4598 mencionó que esto se debe hacer después de la imageView se ha añadido a la ScrollView. –

+0

Tenga en cuenta también que se llamará a 'viewForZoomingInScrollView:' del delegado cuando configure la propiedad zoomScale, por lo que debe asegurarse de que devuelve la vista correcta en ese punto. – Clafou

+0

Es muy importante lo que @paul_sns declaró. Estaba teniendo un comportamiento extraño al hacer zoom en la vista de desplazamiento. Eso es porque configuro la imagen después de configurar la escala de zoom. –

18

El zoom solo funciona cuando implementa la devolución de llamada delegada viewForZoomingInScrollView:.

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)inScroll { 
    return imageView; 
} 
+1

No sabía esto y resolvió mi problema. ¡Muchas gracias! –

0

Debe establecer el zoom inicial cuando aparezca la vista y no cuando la descarga de la vista también funcione.

+1

No entiendo lo que quieres decir. Explicar clealy. – Nejat

1

que estaba enfrentando mismo problema ..
he usado el construido en el método: scrollViewForImage

Esto establecerá el zoom inicial al nivel de 5

[self.scrollViewForImage setZoomScale:5 animated:YES];

código de nivel de zoom mínimo

self.scrollViewForImage.minimumZoomScale=1;

código para Máximo nivel de zoom

self.scrollViewForImage.maximumZoomScale=12.0;

la esperanza que esto ayudará

Cuestiones relacionadas