ネストされたUISCrollViews-子をズームしたときに親Scrollviewがスクロールしないようにする

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

質問

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];
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top