8 Stimmen

Zoomen in UIScrollView funktioniert nicht

Kann jemand mir helfen, auf tun Zoomen mit der UIScrollView?

Ich versuche, die drei Bilder, die von einer URL abgerufen werden, hinzuzufügen und sie mit einem UIScrollView anzuzeigen. Ich kann den Anzeigeteil machen, aber das Zoomen funktioniert nicht. Ich hoffe, jemand kann mir einige Lichter zeigen.

Meine .h-Datei

@interface TestScrollViewViewController : UIViewController <UIScrollViewDelegate>{

IBOutlet UIScrollView *scrollView;
UIImageView *subview;

}

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

@end

die .m-Datei

- (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);

}

und dies ist die Methode viewForZoomingInScrollView

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

Ich hoffe wirklich, dass jemand helfen kann. Danke!

Lawrence

18voto

cutsoy Punkte 9969

Ersetzen Sie

return self.scrollView;

Mit

return subview;

4voto

Filip Radelic Punkte 26548
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.scrollView;
}

Genau das ist der Fehler. Sie können hier nicht die Scroll-Ansicht selbst zurückgeben, sondern nur die Unteransicht, die Sie zoomen möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X