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;
    }

}

我在 Google Drive 上上传了一个 XCode 项目示例: 示例代码

于 2013-01-23T11:15:08.573 回答
0

使用 StoryBoard,您可以禁用ScrollView反弹

在此处输入图像描述

于 2020-10-15T11:35:53.020 回答