iOS: 想请教一下喜马拉雅当前版本(6.6.66)中订阅节目详情页面的实现逻辑
資深大佬 : xingheng 1
录了一段简单的操作视频,直接扔百度网盘了。
链接: https://pan.baidu.com/s/1li9Q-ORycj4VMAmplWr3Iw 提取码: 49ia 复制这段内容后打开百度网盘手机 App,操作更方便哦
我的猜想:暗红色底部是一个普通的 UIViewController (暂且叫 VC1 ),嵌入一个 UIScrollView (暂且叫 SV1 ),然后白底浮层的 View 应该是在一个 UIPageViewController (暂且叫 VC2 )里面,VC2 里面的嵌套的应该是 page content view controller,其他再嵌套了 table/scroll view (暂且叫 SV2 ),然后整个 VC2 被加到 VC1 里面作为 child 。至于 pan 手势的处理,我猜想应该是应该是对直接针对两个 ScrollView 做了单独的手势冲突处理。
简单说一下实现的要点:
- 初始状态滑动 SV1 的时候的 SV2 是直接 pin 到 SV1 里面一起联动的。
- 从下往上快速滑动,当 SV2 到达顶部的时候是 SV2 开始减速。
- SV2 的顶部灰色条可以在任何状态被上下拉拽而不影响 SV2 的 offset 。
- SV2 中支持左右横向滑动。
很想知道有没有更好的解法,期望找到更快速的 native 布局解决方法,请赐教。
大佬有話說 (0)