2011-08-10 27 views
8

¿alguien me puede ayudar a hacer zoom con UIScrollView?Zoom en UIScrollView no funciona

Estoy tratando de agregar las tres imágenes recuperadas de una URL y mostrarlas usando un UIScrollView. Puedo hacer la parte de visualización, pero el zoom no funciona. Espero que alguien me pueda mostrar algunas luces.

Mi archivo .h archivo

@interface TestScrollViewViewController : UIViewController <UIScrollViewDelegate>{ 

IBOutlet UIScrollView *scrollView; 
UIImageView *subview; 

} 

@property (nonatomic, retain) UIScrollView *scrollView; 
@property (nonatomic, retain) UIImageView *subview; 

@end 

la .m

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIImage *page1 = [[UIImage alloc] initWithData:[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://abc.com/001.jpg"]]]; 
    UIImage *page2 = [[UIImage alloc] initWithData:[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://abc.com/002.jpg"]]]; 
    UIImage *page3 = [[UIImage alloc] initWithData:[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://abc.com/003.jpg"]]]; 


    NSArray *images = [NSArray arrayWithObjects: page1, page2, page3, nil]; 
    for (int i = 0; i < images.count; i++) { 
    CGRect frame; 
    frame.origin.x = self.scrollView.frame.size.width * i; 
    frame.origin.y = 0; 
    frame.size = self.scrollView.frame.size; 

    subview = [[UIImageView alloc] initWithFrame:frame]; 
    subview.image = [images objectAtIndex:i]; 

    self.scrollView.minimumZoomScale=0.5; 
    self.scrollView.maximumZoomScale=6.0; 
    self.scrollView.delegate=self; 

    [self.scrollView addSubview:subview]; 

    [subview release]; 
} 

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * images.count, self.scrollView.frame.size.height); 

} 

y este es el método viewForZoomingInScrollView

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

realmente espero de alguien puede ayudar. Gracias.

Lawrence

+1

Si aún persiste el problema, remita esta pregunta http://stackoverflow.com/questions/6566996/with-uiscrollview-zoom-images-in-layout-frame/6567199#6567199 – rptwsthi

Respuesta

16

Reemplazar

return self.scrollView; 

Con

return subview; 
+0

Yo también creo el mismo +1 para eso:) – rptwsthi

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

Eso es lo que está mal. No puede devolver la vista de desplazamiento aquí, debe devolver su vista secundaria que desea ampliar.

+1

Gracias chicos por su amable respuesta y puedo hacer el zoom ahora, pero solo funciona con la última imagen, ¿alguna idea de por qué esto sucedería y cómo solucionarlo? – LawrenceH

Cuestiones relacionadas