ネストされたUISCrollViews-子をズームしたときに親Scrollviewがスクロールしないようにする
-
06-07-2019 - |
質問
UIImageViewがネストされたUIScrollViewがあります。各画像ビューはズームできますが、画像を拡大しながら内側のスクロールビューをスクロールしようとすると、外側のスクロールビューがそれを取得して画像ビューを切り替えます。
外側のスクロールビューが内側がズームされていないときにのみスクロールするように、これを防ぐにはどうすればよいですか?
解決
他の人を助けるために働き始めたという答えを投稿します。
ネストされたUIScrollViewを処理する簡単な方法の1つは、同じデリゲートを共有することです。このようにして、1つのUIScrollViewスクロールを検出すると、コントローラーロジックを簡単に共有し、他のコントローラーに設定を適用できます。
私が抱えていたこの特定の問題を解決するには、現在のズーム状態でBOOLを維持するだけでした。アプリが内側のスクロールビューがズームしていることを検出したら、
- (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];
}
}
所属していません StackOverflow