【发布时间】:2013-01-06 20:07:00
【问题描述】:
我有一个UIWebView,我希望用户能够向下滚动,然后再次返回,但不能从顶部拉回页面(通常与拉动刷新相关的手势)。我不希望用户在它背后什么都没有的时候拉它,当他们这样做时什么都不会发生。叫我霸道;)
我可以在向上移动并且已经在内容的顶部时禁用滚动,而不影响向下滚动,或者如果不在顶部则向后滚动?
【问题讨论】:
标签: ios objective-c uiwebview uiscrollview uikit
我有一个UIWebView,我希望用户能够向下滚动,然后再次返回,但不能从顶部拉回页面(通常与拉动刷新相关的手势)。我不希望用户在它背后什么都没有的时候拉它,当他们这样做时什么都不会发生。叫我霸道;)
我可以在向上移动并且已经在内容的顶部时禁用滚动,而不影响向下滚动,或者如果不在顶部则向后滚动?
【问题讨论】:
标签: ios objective-c uiwebview uiscrollview uikit
你应该使用:
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 项目示例: Sample Code
【讨论】: