一直以来都是用的第三方的刷新和加载,或者直接用系统的下拉刷新外带底部加载按钮。没有自己定义刷新和加载。不管是为了现在这个工程会改变刷新和加载时的样式,还是在以后别的工程出现的新的样式。考虑到应该去写一些自己可以用的东西。第三方类库可以省去很多事情,但是有时候我们没了自己的一些思想,所以我们需要去思考,去观察,去学习,去借鉴。
了解UIScrollView的contentOffset、contentInset
了解UIScrollView的tracking、dragging、decelerating
主要是判断ScrollView的contentOffset,根据contentOffset来设定scrollView的contentInset
判断scrollView.contentOffset.y的值进行frame的处理。根据dragging、decelerating的状态进行UI的展示和调整,同时在不同状态下可以delegate或者block传递scrollView做相应的事件。
主要状态:1、准备刷新-scrollView.decelerating为NO和scrollView.dragging为YES,scrollView.contentOffset.y的值处于小于(下拉)/大于(上拉)设定的Inset值
2、开始刷新-scrollView.decelerating为NO和scrollView.dragging为YES,scrollView.contentOffset.y处于小于(上拉)/大于(下拉)设定的Inset的值
3、进入刷新--scrollView.decelerating为YES和scrollView.dragging为NO,scrollView.contentOffset.y处于小于(上拉)/大于(下拉)设定的Inset的值
在这三种状态中我们可以进行RefreshView的展示并处理UI或者进行Animation
下面贴出主要代码
其实这个很简单,就是自己写的自己可以随时更改,自己可以控制,并且可以吧HeaderView和FooterView自定义