iOS类似淘宝下拉加载更多界面
最近做项目的时候,产品提出App中的物品详情界面要做一个类似淘宝下拉加载更多的样式!
类似于这样~~~↓↓↓↓↓↓↓↓
成品效果展示当时思考了下,这到底是一个界面还是两个界面!仔细滑动了几下淘宝的界面。发现这其实就是一个界面的scrollview滑动!!
整体视图层级是这样的——最底层是一个scrollView,这个scrollview上面是用来放第一个view的,然后在这个scrollview上面放一个scrollview,放在第一个view的下面,第二个scrollview上面放第二个view(也就是详情页)。大体层级关系是这样~↓↓↓↓↓↓↓↓↓
上部分 下部分好哒!!弄清这个层级关系我们就知道该怎么着手开始写了!!
封装一个类~!TheXXScrollDetailView
.h文件中声明:
TheXXScrollDetailView.h枚举用来判断是哪个view!TheXXScrollDetailView用来放需要加载的两个页面!
在.m文件中:
需要固定的几个数值,方便修改需要说明的是xib上半部分和下半部分是中间的过度提示~!↓↓↓↓↓↓
图文提示set方法↓↓↓↓↓↓↓↓↓↓
设置需要加载的上下两个页面的高其中:
#define H_SELF self.frame.size.height
#define W_SELF self.frame.size.width
设置最小高度和两个scrollview的contentsize。tips:在设置secondscrollview的contentsize+0.001是为了防止当scrollview的contentsize等于或小于scrollview的frame造成scrollview不能滑动的情况。
封装的初始化方法这么写:↓↓↓↓↓↓↓↓↓↓↓↓↓↓
UIview初始化方法这个初始化方法中用来实例化两个scrollview和上面截图的过度界面。
接下来就是scrollview的代理方法了↓↓↓↓↓↓↓↓↓
scrollview的代理方法这个交互的核心就在这个代理方法里面了。
当scrollview的偏移量大于等于需要加载的topview的高+过度画面+一定的偏移量的时候。切换到下个详情界面,也就是bottomview,此时记得设置第一个scrollview禁止滑动;
在第二个scrollview的时候,当偏移量小于等于过度画面+一定的偏移量的时候切换到第一个scrollview。(注意,此时的偏移量并不是小于第一个scrollview的判断值了,应为现在在第二个scrollview上,偏移量是重新计算的)动画完成后记得设置第一个scrollview的使能为yes!
ok,到这里这个封装就算完成了~!当需要用到它时,只需要在控制器里实例化,然后设置两个view就可以了~!这样↓↓↓↓↓↓↓↓↓↓
加载方法代码已上传到github。点这里
我是Logan~!我的心愿是代码永无bug!