禁用拖动UIWebView / UIScrollView的顶部(“拉到刷新”手势)

时间:2013-01-23 11:03:01

标签: ios objective-c uiwebview uiscrollview uikit

我有一个UIWebView,我希望用户能够向下滚动,然后再次备份,但不要从顶部拉回页面(通常与拉动刷新相关的手势) )。我不希望用户在它背后没有任何东西时拉动它,当他们这样做时什么都不会发生。叫我过度承担;)

我可以在向上移动并且已经位于内容顶部时禁用滚动,而不会影响向下滚动,或者如果不在顶部则备份吗?

2 个答案:

答案 0 :(得分:16)

您应该使用:

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云端硬盘上传了一个XCode项目示例: Sample Code

答案 1 :(得分:0)

使用StoryBoard,您可以禁用ScrollView跳动

enter image description here