iPhone - UIWebView的:检测用户滚动页

问题描述:

的底部,所以,我有一个内部服务建立一个本地的HTML文件(文档预览)一个UIWebView一个UIView。我也有“接受”&“拒绝”UIButtons。我需要这些按钮才会在用户滚动到网页底部后才显示。有没有办法捕获一个滚动到UIWebView底部的事件?iPhone - UIWebView的:检测用户滚动页

我还没有看到任何好的答案,任何人都可以帮忙吗?

在此先感谢。

呵呵?

为什么不在页面底部包含按钮?

+0

按钮不在HTML中,它们位于也具有UIWebView的UIView中。 – JWD 2010-10-25 19:21:15

+1

啊,在这种情况下。您可以在单独的viewController中将HTML呈现为模式视图,并使用HTML和底部的按钮。 – Jordan 2010-10-25 19:27:34

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!"); 
    } 
    }