iOS高仿美团外卖店铺主页

作者: xiaoxiaokang | 来源:发表于2018-08-01 11:34 被阅读1059次

高仿美团外卖的店铺主页(包括下拉动画效果,解决各种手势问题,并且cell有列表样式,九宫格样式,卡片样式),各种动画效果纵享丝滑,因为写的比较急,还待优化.!

解决UIScrollView嵌套UIScrollView、UITableview或者UIcollectionView的问题,结合手势和仿动力学UIKit Dynamic实现自定义scollView效果。

手势冲突参考文章:iOS 嵌套UIScrollview的滑动冲突另一种解决方案 - 简书

GitHubhttps://github.com/chikang/CKMeiTuanShopView

UIAttachmentBehavior:附着行为

UICollisionBehavior:碰撞行为

UIGravityBehavior:重力行为

UIDynamicItemBehavior:动态元素行为

UIPushBehavior:推行为

UISnapBehavior:吸附行为

上述的各种行为可单独使用,也可以组合使用更复杂的动画效果。

高仿美团外卖GIF

需求核心问题就一个,如何优雅的解决:当内容还未到最大可显示范围时,列表里的内容不能滚动;当内容显示到最大的时候,如何不断开当前滚动手势,继续滚动列表里的内容。

#原理

为内容承载视图添加一个UIPanGestureRecognizer,成为其delegate,并让shouldRecognizeSimultaneouslyWithOtherGestureRecognizer方法返回true;如此一来,内容承载视图与列表视图的滚动手势可以同时响应了。接着,我们需要处理好当内容承载视图未显示到最大值(_maxOffset_Y)时,列表视图(UITableView、UICollectionView)的contentOffset.y会被强制设置为0,营造一种列表内容未滚动的假象;当内容承载视图滚动到最大的时候,就放开对列表视图的滚动限制,并且通过仿动力学UIKit Dynamic实现自定义scollView效果.

1:手势问题,可参考👆的文章,解释的很详细,包括手势问题,以及如何实现自定义scrollView效果,模拟scrollView的回弹速度,阻尼效果等等.

2:tableview和collectionView都继承于scrollview,把父视图scrollview内容承载视图,在内容承载视图上添加tableview或collectionView,计算父视图scrollview(内容承载视图)向上滑动与导航条无缝对接需要的最大偏移量_maxOffset_Y,再根据偏移量是否大于_maxOffset_Y,来判断是父视图scrollview(内容承载视图)在进行偏移,还是子视图scrollview在进行偏移,从而设置scrollview.contentOffset.

3:根据scrollview的代理方法scrollViewDidScroll,来监听scrollview的偏移量,来实现头部的动画效果以及导航条的动画效果。

4:判断向下滑动偏移量是否大于设定好的距离(70),来让整个商品列表平移向下消失,展示店铺活动优惠券视图。通过滑动手势,从底部向上滑动或者点击导航条的返回按钮,让商品列表平移向上动画展示出来。

5:实现二级联动效果,根据父视图scrollview(内容承载视图)的偏移量来计算左侧菜单menuTableView的高度,实现动态高度,达到跟美团外卖一样的效果.

6:添加横向scrollview,实现可以横向滑动。

7:实现评价列表上拉加载效果,解决与自定义scrollview偏移量冲突问题。(使用MJRefresh会有问题。)

点击左侧cell,右侧滚到到对应的section 左侧tableview滑动,左侧滚动到对应的行 【商家店铺列表样式】tot
【商家店铺卡片样式】 【商家店铺九宫格样式】 评价页面 【店铺活动】 【类似QQ菜单视图】 【商家店铺信息】

相关文章

网友评论

  • 3aa3ab23a5bd:大牛,想知道在商品底部加个固定位置的购物车,而不是滑动才会显示,有啥思路么?:joy:
    xiaoxiaokang:@囙憶留吥住啈冨 你在底部加的固定购物车视图放到父容器视图上就好了,不要放到scrollview上
  • 双子末音:下拉一点点,已经停止下拉(拖动)后,会出现回弹好几次后才停止。代码好复杂,看不懂。
    xiaoxiaokang:嗯,我回头看了一下,是存在这个问题,UIAttachmentBehavior导致的,你可以尝试如果已经回弹到顶部,移除手势 试一下
  • a2224efc067f:爸爸牛逼
  • 049b30e10998:CPU常驻102% 感觉手机要炸了
    xiaoxiaokang:FXBlurView导致,已经解决。
  • dqk1023:demo打不开
    xiaoxiaokang:@dqk1023 pod试试?
  • 璨璨15:亲 我看你有些购物车的 能不能麻烦你发一下呀
    xiaoxiaokang:@璨璨15 完整的流程都是有写的,这里我只是把店铺主页这一块放出来了。
    璨璨15:亲 结算的你有写吗
    xiaoxiaokang:@璨璨15 项目里面有写,但是没有拆出来。
  • 天空总是很晴朗:demo打不开
    天空总是很晴朗:@xiaoxiaokang 嗯。我把文件放到我新建项目里打开了,感谢老哥
    xiaoxiaokang:我这边是可以打开的,如果不行你可以pod试试 。
  • 饿了怎么办:池神牛逼
    xiaoxiaokang:互相学习,互相探讨:smile:
  • 不误正业的开发者:�给池神顶一个

本文标题:iOS高仿美团外卖店铺主页

本文链接:https://www.haomeiwen.com/subject/cymijttx.html