浅谈一种iOS页面交互的技术选型

先上动图,看看效果。


效果图

先说一下,这种页面主要功能:

1.首先是头部有展示区,可是轮播图或者列表,用于展示重要位置或者功能分区。

2.下方对应n多个列表,页面左右滑动切换底部分页。

3.页面支持下拉刷新和上拉分页(其中上拉先到顶部阈值,在触发分页请求,下拉刷新,下方列表区回到底部初始位置,在触发下拉刷新)。

这种交互马上就应该想到有:手势冲突问题,如果当前接收交互行为的是下方列表区,则滑动列表就会触发上下拉刷新操作。

从交互抽象出具体要求就是:

1.主页面VC接收全部交互行为,从而能判断行为和设置行为。

2.列表VC中滑动能通知主页面VC,从而控制滚动和刷新。

条条大路通罗马,说下我走的路:

1.因为考虑到视频,我采用UIScrollView做主视图容器,我封装一个视图集成UIScrollView,改写

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

    return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]];

}

让主视图接收到全部交互行为。

在列表区封装的UITableView滚动可以通知到主控制器,可以采用代理,block,通知有很多种方法实现。

在双方互相设置阈值和设置滚动效果。从而达成效果。


思路或者源码:

腾讯特斯拉组件:https://mp.weixin.qq.com/s/hBgvPBP12IQ1s65ru-paWw

仿各大App尝试:https://github.com/SPStore/HVScrollView

你可能感兴趣的:(浅谈一种iOS页面交互的技术选型)