iOS:检测到达顶部或底部的UIWebView

Moh*_*gab 10 iphone uiwebview ios

如何检测到达顶部或底部的UIWebView?因为当我到达底部时我需要触发一个动作.

那可行吗?

gfr*_*gon 24

首先,你不应该在文档中提到你的UIWebView内部.UIScrollViewUIWebView

重要提示:您不应在UIScrollView对象中嵌入UIWebView或UITableView对象.如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能混淆和错误处理.

相反,您可以UIScrollView通过UIWebView属性访问.您的视图控制器可以实现UIScrollViewDelegate.

@interface MyViewController : UIViewController<UIScrollViewDelegate>
@end
Run Code Online (Sandbox Code Playgroud)

然后你可以挂钩到UIScrollView:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Set self as scroll view protocol
    webView.scrollView.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)

然后最终检测到达到的顶部和底部:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{   
    if(scrollView.contentOffset.y 
       >= 
       (scrollView.contentSize.height - scrollView.frame.size.height)){
        NSLog(@"BOTTOM REACHED");
    }
    if(scrollView.contentOffset.y <= 0.0){
        NSLog(@"TOP REACHED");
    }
}
Run Code Online (Sandbox Code Playgroud)

瞧,您可以检测到达到顶部和底部的时间.


gre*_*heo 2

如果您的目标是 iOS 5,UIWebView则有一个只读scrollView属性,允许您访问底层UIScrollView.

从那里,您可以挂钩scrollView的scrollViewDidScroll:委托方法来接收有关滚动事件的信息。