iOS编写下拉刷新控件

2020-01-15 13:14:23王旭
易采站长站为您分析iOS编写下拉刷新控件的相关资料,iOS如何写个普通的下拉刷新的控件,需要了解的朋友可以参考下文  

现在iOS里有很多成熟的下拉刷新控件,比如MJRefresh,SVPullToRefresh

我这里参考了SV的写法,但是回调用的是代理,没有用block,个人感觉用代理更简洁一点

下拉刷新的基本原理

在scrollview的上面和下面分别添加一个view,上面的是下拉的时候展示下拉动画的headerView,下面的是上拉加载更多的时候展示动画的footerView

这里的headerView和footerView都是自己添加的,和tableView自己的header,footer不一样

headerView是添加在scrollView的最上面的,设置frame的时候是origin.y是负数

当下拉达到条件就触发刷新,同时更改scrollview的contentInsert.top值,以使手指松开之后headerView仍然可以露出来

刷新结束之后,停止headerView上面的动画,然后把contentInsert的值改回去

footerView是添加在最下方的,frame.origin.y是scrollview的contentSize.height

在上拉到一定程度之后就更改scrollview的contentInsert,使footerView可以露出来,加载结束之后就改回去

如何写下拉刷新

写下拉刷新一般都是给scrollview写一个类别,添加一个新的方法,来把headerView和footerView添加到scrollview上面

iOS,下拉刷新

给scrollview声明一个headerView类型的属性(如何给类别添加属性)

然后给scrollview的contentoffset属性添加监听者,这个监听者就是headerView

iOS,下拉刷新

这样,在scrollview滑动的时候,就可以监听到滑动的情况,并根据数据来决定是否刷新和时候改变scrollview.contentInsert.y