ampliar la imagen en scrollview iphone?

Tengo que acercar una imagen UIScrollView y después de hacer zoom quiero recortar la imagen que es visible en UIImageView. Tengo los siguientes problemas:

1) Imagen sin zoom, viewForZoomingInScrollView método no llamado.

2) Esta es mi segunda pregunta sobre recortar, la primera es aquí. ¿Cómo puedo recortar la imagen ampliada después de hacer zoom?

Mi codigo es:

@interface ViewController : UIViewController<UIScrollViewDelegate>
{
     UIImageView *imageView1;
     UIScrollView *scroll;
}
@property(nonatomic,retain) UIImageView *imageView1;

@end

y en archivo .m

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    CGRect frame1 = CGRectMake(10,10,190,200);
    self.imageView1.userInteractionEnabled = YES;

    imageView1=[[UIImageView alloc]initWithFrame:frame1];
    imageView1.contentMode = UIViewContentModeScaleToFill;



    imageView1.image= [UIImage imageNamed:@"back.jpeg"];



    CGRect frame = CGRectMake(10,10,190,200);
    scroll = [[UIScrollView alloc] initWithFrame:frame];
    scroll.contentSize = CGSizeMake(240, 260);
    scroll.showsHorizontalScrollIndicator = YES;
    scroll.showsVerticalScrollIndicator = YES;  
    scroll.clipsToBounds = YES;

    scroll.backgroundColor=[UIColor blackColor];
    [scroll addSubview:imageView1];
    [imageView1 release];

    scroll.minimumZoomScale = 0.55; 
    scroll.maximumZoomScale = 2.0;

    scroll.delegate=self;

    [self.view addSubview:scroll];

    self.imageView1.userInteractionEnabled = YES;

}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    NSLog(@"delegate method called");
    return self.imageView1;

}

preguntado el 04 de julio de 12 a las 10:07

1 Respuestas

Implemente UIScrollViewDelegate y llame a esta función en ViewDidLoad de su controlador.

-(void)setContentSizeForScrollView
{
    scrollView.contentSize = CGSizeMake(YOURIMAGEVIEW.frame.size.width, YOURIMAGEVIEW.frame.size.height);
    scrollView.minimumZoomScale = 1.0;
    scrollView.maximumZoomScale = 5.0;
}

y escribir esta función

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

Respondido 04 Jul 12, 11:07

¿De una manera estás lanzando imageView1? ¿Por qué? - Mehul Mistri

Un consejo para tomar todo esto UIScrollView y UIImageView en XIB, entonces será fácil para usted... - Mehul Mistri

todavía no funciona ... el método de delegado viewForZoomingInScrollView no se volvió a llamar - QueueOverFlow

gracias.. está funcionando ahora.. el problema es que mi vista de imagen y scrollView es más pequeña y estoy probando en el simulador.. me ayudan mucho gracias... - QueueOverFlow

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.