ios 根据scrollview滑动的偏移计算滑动到第几页算法(不同需求不同计算)

Posted 孙富有(iOS工程师)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 根据scrollview滑动的偏移计算滑动到第几页算法(不同需求不同计算)相关的知识,希望对你有一定的参考价值。

 

第一种:

CGFloat pageWidth = self.scrollView.frame.size.width;

int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

举个例子吧
一页的width为320
用方法1的结果
情况1:
contentoffset小于320+160,即在第二页的左半部分,(self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth的结果是0.xxxx,floor结果为0,计算结果为1,即会回到第一页
情况2:
contentoffset大于320+160,即在第二页的右半部分,(self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth的结果是1.xxxx,floor结果为1,page计算结果为2,即会进入第二页


第二种
self.scrollView.contentOffset.x/pageWidth
用方法2的结果
self.scrollView.contentOffset.x/pageWidth计算结果都为1.xxx
而page是int类型,系统根据四舍五入自动强制转型
 











以上是关于ios 根据scrollview滑动的偏移计算滑动到第几页算法(不同需求不同计算)的主要内容,如果未能解决你的问题,请参考以下文章

scrollview滑动到某区域执行某种方法

iOS scrollview不能滑动的几个原因及解决方法

android仿IOS,滑动隐藏底部ScrollView

滑动UIScrollView隐藏显示导航条与标签条

ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题

iOS解决嵌套在ScrollView中的TableView滑动手势冲突问题