Frage

Ich habe eine UIScrollView mit verschachtelten UIImageViews. Jeder kann Imageview vergrößern, aber wenn ich versuche, den inneren Scroll während auf das Bild gezoomt zu blättern, die äußere Scrollview hebt es auf und schaltet imageviews.

Wie kann ich verhindern, dass dies geschieht, so dass die äußere Scroll nur scrollt, wenn der innere gezoomt wird nicht?

War es hilfreich?

Lösung

Ich werde meine Antwort posten, die ich anderen zu helfen, an die Arbeit.

Eine einfache Möglichkeit, verschachtelte UIScrollViews zu handhaben ist die gleich Delegierten zu teilen. Auf diese Weise, wenn Sie ein UIScrollView Scrollen erkennen, können Sie leicht Controller-Logik teilen und wenden Einstellungen auf der anderen Seite.

dieses spezielle Problem zu lösen Ich hatte alles, was ich tun musste, war einen BOOL mit dem aktuellen Zoom Zustand zu halten. Sobald die App festgestellt, dass der innere Scroll wurde Zoomen,

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView1 {
    return [innerScrollViews objectAtIndex:[self indexOfComicViewWithOffset:currentOffset]];    
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView1 withView:(UIView *)view atScale:(float)scale {
    if (scale == 1) {
        zooming = NO;
        [outerScrollView setScrollEnabled:YES];
    } else {
        zooming = YES;
        [outerScrollView setScrollEnabled:NO];
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top