【问题标题】:Prevent UIWebView From Scrolling Too Far防止 UIWebView 滚动太远
【发布时间】:2013-05-18 17:20:19
【问题描述】:

我有两个按钮,一个向上滚动和一个向下滚动,用于滚动UIWebView 中的网页。唯一的问题是,一旦他们到达页面的顶部或底部,他们就可以继续滚动。他们可以滚动直到整个网页离开UIWebView。有谁知道我需要插入什么代码来防止这种情况发生?我已经研究了一段时间,这一切都超出了我的想象。甚至可以检测到网页的结束位置吗?这是我用来滚动的代码,我感觉我需要在这里抛出一个if 语句来检查它是否已经到达网页的顶部。

    //Scroll Up:
-(IBAction)scrollContentUp:(id)sender {

    [_viewWeb.scrollView setContentOffset:CGPointMake(0,_viewWeb.scrollView.contentOffset.y - 40.0) animated:YES];

}

//Scroll down:
-(IBAction)scrollContentDown:(id)sender {
    [_viewWeb.scrollView setContentOffset:CGPointMake(0,_viewWeb.scrollView.contentOffset.y + 40.0) animated:YES];

}

顺便说一下,这是一款仅限 iPad 的应用。

【问题讨论】:

  • 难道你不能只跟踪内容向上或向下滚动的像素并在达到某个值时停止滚动吗?
  • 我认为这是我需要做的,唯一的问题是我不知道该怎么做。我对 Objective-C 还是很陌生。

标签: ios objective-c uiwebview custom-scrolling


【解决方案1】:

+你需要这样做:

   //Scroll Up:
-(IBAction)scrollContentUp:(id)sender {
    if(_webView.scrollView.contentOffset.y - 40 >= 0) {
        [_viewWeb.scrollView setContentOffset:CGPointMake(0,
                                    _viewWeb.scrollView.contentOffset.y - 40.0) 
                                     animated:YES];
    }
}

//Scroll down:
-(IBAction)scrollContentDown:(id)sender {
    if(_webView.scrollView.contentOffset.y + _webView.frame.size.height + 40 <= _viewWeb.scrollView.contentSize.height ) {
            [_viewWeb.scrollView setContentOffset:CGPointMake(0,
                                        _viewWeb.scrollView.contentOffset.y + 40.0) 
                                         animated:YES];
    }

}

【讨论】:

  • 有一个 - 符号应该是 +
  • 哦,好吧,这就解释了。再次感谢您所做的一切!
猜你喜欢
  • 2014-01-21
  • 1970-01-01
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多