当年奋不顾身跳的那些~坑UI复刻

iOS类似淘宝下拉加载更多界面

2016-10-11  本文已影响1038人  优质神经病


最近做项目的时候,产品提出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!

上一篇下一篇

猜你喜欢

热点阅读