6

ユーザーが下にスクロールしてUIWebViewから再び上に戻ることができるようにしたいのですが、ページを上から引き戻さないでください (通常、引っ張って更新することに関連するジェスチャー)。背後に何もないときにユーザーがそれを引っ張ってほしくありません。引っ張っても何も起こりません。私を圧倒していると呼んでください;)

スクロールダウンに影響を与えることなく、上に移動してコンテンツの上部にあるときにスクロールを無効にしたり、上部にない場合は元に戻したりできますか?

4

2 に答える 2

17

使用する必要があります:

webView.scrollView.bounces = NO;

UIWebView は UIScrollViewDelegate に準拠しています。次のようにデリゲート メソッドを実装できます。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    //The webview is is scrolling
    int yPosition = [[_webview stringByEvaluatingJavaScriptFromString: @"scrollY"] intValue];

    if([[_webview stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"] intValue] - yPosition == _webview.frame.size.height)
    {
        //The user scrolled to the bottom of the webview
        _webview.scrollView.bounces = YES;
    }else if([[_webview stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"] intValue] - yPosition > _webview.frame.size.height + 100){
        _webview.scrollView.bounces = NO;
    }

}

XCode プロジェクトのサンプルを Google ドライブにアップロードしました: サンプル コード

于 2013-01-23T11:15:08.573 に答える
0

StoryBoard を使用すると、ScrollViewバウンスを無効にできます

ここに画像の説明を入力

于 2020-10-15T11:35:53.020 に答える