Pergunta

Eu tenho uma UIScrollView com UIImageViews aninhadas. Cada ImageView pode ampliar, mas quando eu tento rolar a scrollview interior com o zoom na imagem, as picaretas ScrollView exteriores lo e interruptores imageviews.

Como posso evitar que isso aconteça para que o scrollview exterior única rola quando o interior não é ampliada?

Foi útil?

Solução

Vou postar minha resposta que eu tenho que trabalhar para ajudar os outros.

Uma maneira fácil de manusear UIScrollViews aninhados é compartilhar o mesmo delegado. Desta forma, quando você detectar uma rolagem UIScrollView, você pode facilmente lógica do controlador compartilhar e aplicar as configurações para o outro.

para resolver este problema em particular que eu estava tendo, Tudo o que eu tinha a fazer era manter um BOOL com o estado atual do zoom. Uma vez que o aplicativo detectou que a scrollview interior foi 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];
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top