Nested UIScrollViews - Prevenção Pai ScrollView de rolagem quando o zoom na criança
-
06-07-2019 - |
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?
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];
}
}