UISCrollViews imbriqué - Empêcher le défilement de Scrollview parent lorsque vous zoomez sur l'enfant

StackOverflow https://stackoverflow.com/questions/1010489

Question

J'ai un UIScrollView avec UIImageViews imbriqué. Chaque imageview peut effectuer un zoom, mais lorsque j'essaie de faire défiler la vue de défilement interne tout en zoomant sur l'image, la vue de défilement externe la sélectionne et modifie les visualisations d'image.

Comment puis-je empêcher cela de sorte que la vue de défilement externe ne défile que lorsque la partie interne n'est pas zoomée?

Était-ce utile?

La solution

Je vais répondre que je dois travailler pour aider les autres.

Un moyen simple de gérer les UIScrollViews imbriqués consiste à partager le même délégué. Ainsi, lorsque vous détectez un défilement UIScrollView, vous pouvez facilement partager la logique du contrôleur et appliquer des paramètres à l’autre.

pour résoudre ce problème particulier que je rencontrais, tout ce que j'avais à faire était de garder un BOOL avec l'état de zoom actuel. Une fois que l'application a détecté que la vue de défilement interne faisait un zoom,

- (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];
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top