UISCrollViews nidificate - Impedisce lo scorrimento della Parent Scrollview quando si esegue lo zoom su figlio

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

Domanda

Ho un UIScrollView con UIImageViews nidificate. Ogni immagine può essere ingrandita, ma quando provo a scorrere la vista interna mentre ingrandisco l'immagine, la vista esterna la raccoglie e cambia le immagini.

Come posso evitare che ciò accada in modo che la vista di scorrimento esterna scorra solo quando quella interna non è ingrandita?

È stato utile?

Soluzione

Pubblicherò la mia risposta che devo lavorare per aiutare gli altri.

Un modo semplice per gestire UIScrollViews nidificati è condividere lo stesso delegato. In questo modo, quando si rileva uno scorrimento UIScrollView, è possibile condividere facilmente la logica del controller e applicare le impostazioni all'altra.

per risolvere questo particolare problema che stavo avendo, tutto quello che dovevo fare era mantenere un BOOL con l'attuale stato di zoom. Una volta che l'app ha rilevato che lo scrollview interno stava ingrandendo,

- (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];
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top