【发布时间】:2011-04-30 08:55:45
【问题描述】:
所以,我有一个带有 UIWebView 的 UIView,用于提供本地 HTML 文件(文档预览)。我也有“接受”和“拒绝” UIButtons。我需要这些按钮仅在用户滚动到网页底部后出现。有没有办法捕获滚动到 UIWebView 底部的事件?
我没有看到任何好的答案,有人可以帮忙吗?
提前致谢。
【问题讨论】:
标签: iphone objective-c uiwebview uiwebviewdelegate
所以,我有一个带有 UIWebView 的 UIView,用于提供本地 HTML 文件(文档预览)。我也有“接受”和“拒绝” UIButtons。我需要这些按钮仅在用户滚动到网页底部后出现。有没有办法捕获滚动到 UIWebView 底部的事件?
我没有看到任何好的答案,有人可以帮忙吗?
提前致谢。
【问题讨论】:
标签: iphone objective-c uiwebview uiwebviewdelegate
嗯?
为什么不直接在页面底部添加按钮?
【讨论】:
UIWebView 符合 UIScrollViewDelegate。因此,您可以创建 UIWebView 的子类(例如 ScrollDetectWebView)并捕获对 UIScrollViewDelegate 的调用。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[super scrollViewDidScroll: scrollView];
// Whatever scroll detection you need to do
}
【讨论】:
JavaScript 让我们处理滚动事件并将消息发送到 Objective-c。
【讨论】:
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.scrollView.delegate = self;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
CGSize fittingSize = [self.webView sizeThatFits:CGSizeZero];
CGFloat height1 = scrollView.bounds.origin.y + self.webView.bounds.size.height;
CGFloat height2 = fittingSize.height;
int delta = fabs(height1 - height2);
if (delta < 30) {
NSLog(@"HELLO!!! You reached the page end!");
}
}
【讨论】: