7

バウンスを制限してUIScrollView、下部では通常どおりバウンスするが、上部では X ピクセルを超えないようにする必要があります (下部は重要ではありません)。

跳ねるサイズを制限する方法はありますか? us のようなデリゲートのメソッドscrollViewWillScroll( の代わりにscrollViewDidScroll) を使用すると、top+X よりも先に移動するスクロール イベントを消費できるのではないかと考えていますが、これまで適切なメソッドを見つけることができませんでした。

手がかりはありますか?

4

1 に答える 1

17

scrollViewDidScroll:これの正しい方法です。そこでcontentOffsetを調整するだけです。

この例では、トップバウンスを20ピクセルに制限します。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.y < -20) {
        scrollView.contentOffset = CGPointMake(0, -20);
    }
}

バウンスの理由がドラッグではなく減速されたスワイプである場合、ビューが0,0にスクロールバックされるまで、少し不自然な遅延があることに注意してください。しかし、これを防ぐ方法はないと思います。基本的に、scrollViewは完全にバウンスしますが、表示されません。

于 2012-12-12T15:07:03.357 に答える