iOS如何判断UITableView滑动到了底部

想要知道tableView是否滑动到了底部,我们需要先了解一些有关于scrollView的概念(UITableView继承自UIScrollView)(查了资料后的个人理解.如有不对请帮忙指出)

contentSize: 可以滚动的区域

contentOffset:  scrollView顶点相对于contentView顶点的偏移量

contentInset: contentView四周距离scrollView的距离.


图示

知道了这几个词的概念后,我们回到tableView上来.

首先,使用- (void)scrollViewDidScroll:(UIScrollView*)scrollView监听tableView的滚动,并打印scrollView.contentOffset的y值和scrollView.contentSize的height值,在往底部滚动的过程中,会发现,scrollView.contentOffset.y越来越大,越来越接近scrollView.contentSize.height的值.直到滚到底部,两者相差一个屏幕的高度(我使用6测试的)


打印值

通过画图分析,也不难得出结果


分析图

为使容判断到达底部的容错能力稍强,两者相减<=ScreenWidth + 1,就可以得到比较准确的效果了.而且因为有时,这两个值相减不一定是整数,+1也是为了避免因为这种情况出现导致判断错误.

判断代码:

if(delta <= 1 + [UIScreen mainScreen].bounds.size.height)

 {

        NSLog(@"YES");

}

else

{

        NSLog(@"NO");

}

以上只分析了contentInset四个值都为0的情况.设置了contentInset也同理可以通过打印值,修改判断的条件得到答案.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容