探究iOS上拉、下拉原理

来源:互联网 发布:淘宝改后台软件安全吗 编辑:程序博客网 时间:2024/04/28 04:01

TableView的上拉,下拉特效已经满大街都是了,也有很多第三方的代码。

    这两天研究了一下其原理,分享一下思路。这里以tableView的上拉为例,由于上拉操作的样式也很多,这里只介绍一种:在上拉tableView的时候,在tableView的bottom下面,添加一个view,该view可以自定义。我称这个view为pullView,pullView是动态的,如下图(该图仅展示了loading状态,另外在loading的位置,还有“上拉显示更多”、“松手显示更多”和“没有更多”几个状态字符)

这里写图片描述
下图列出来pullView的基本状态,以及他们相互转化的路线。
这里写图片描述

实现步骤:
1. 将tableView向上稍微拉出一点,此时显示“上拉显示更多”

  1. 继续向上拉,超出一定距离,显示“松手可显示更多”;此时用户可继续向上拉,程序员要在- (void)scrollViewDidScroll:(UIScrollView *)scrollView 中要不断设置pullView的frame,以便pullView可以跟随scrollerView。

  2. 松手后,显示“加载中…”(需要设置Inset,即,将scrollerView的Inset.Bottom变大,以至于能腾出空间显示pullView。就上图而言Inset({64, 0, 56, 0}))

4.在上拉时候没有松手,又拉回去(中间没有停顿)。

5.继续下拉,直至pullView移除屏幕了

6.loading完成就隐藏(恢复Inset,但是不恢复Offset,不然则出现抖动,关于抖动更详细的参考这里)

  1. 某些情况直接跳过第一步,进入trigger状态。

  2. 显示“没有更多”的label

0 0
原创粉丝点击