在实际中,总有些奇奇怪怪的需求,今天在在一个群里就看到一个人问怎么判断UIWebView是否滑到了底部,闲来无事就研究了下;
通过看API,我们知道UIWebView是继承了的UIView
NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIWebView : UIView <NSCoding, UIScrollViewDelegate>
它实现了UIScrollViewDelegate的协议方法,所以我们可以去调用UIScrollView的代理方法;首先我们了解一下UIScrollView的两个属性,如下所示:
contentSize:代表你的scrollview可以上下滚动的范围
contentOffset:代表你的scrollview当前滚动时Y点的坐标
其实判断是否滑到底的原理就是:当前滚动的区域 -当前滚动位置的Y点 = 当前视图的高度;
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
if ((scrollView.contentSize.height - scrollView.contentOffset.y) == scrollView.frame.size.height) {
NSLog(@"到底了。。。。");
}
}
定义的UiWebView要实现UIScrollView的协议
webViews.delegate = self;
webViews.scrollView.delegate = self;
[webViews loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://lizhuang.iteye.com/blog/1517175"]]];
[self.view addSubview:webViews];
当然要添加它的协议的:
@interface ViewController ()<UIWebViewDelegate,UIScrollViewDelegate>
这样我们就能判断是否滑动到了底部了。