唉...
我就来科普一下吧
正常这种文章应该是出现在 MacDev 板的
首先 滑动退出在 iOS 又叫做 InteractiveTransition
是早在 2013 年的 WWDC 就介绍的功能
https://developer.apple.com/videos/play/wwdc2013/218/
视 viewController persent 的方式会需要实作 3~4 个项目
分别是
UIViewControllerAnimatedTransitioning
UIViewControllerTransitioningDelegate
UIPercentDrivenInteractiveTransition
UIPresentationController(for persenting Modally)
不使用默认 naviatiaonController 的滑动手势
是因为默认只能从萤幕边缘触发
但是 PiTT 不需要滑动删除功能
所以就没有必要避免萤幕中间的滑动手势侦测
单手使用者也可以从萤幕的任何地方开始滑动
不会因为萤幕过大摸不到萤幕边缘 反而更方便
主要的手势侦测有两种项目
一个是滑动距离 一个是滑动速度
滑动距离 一般业界都是侦测 view.bounds 一半的值(视纵向与横向)
滑动速度 一般业界都是侦测 velocity 是否超过自订的 threshold
某 app 实作的 只有 gestureRecognizer.state == .began(我猜的)
所以才会稍微滑动 连手指都没放开就触发
也没办法来回滑动或是滑一滑放弃回到原页
我不知道是故意的还是怎么样 也没有说一定就是不好的
但这个就是没有实作完整的滑动手势侦测
总不能要求一个做完 100% 功能的 删掉做好的部分退回 10% 吧?
我是不知道这样回信有哪里得罪你啦...
https://i.imgur.com/FPz6o3p.jpg
https://i.imgur.com/rAKR23V.jpg
https://i.imgur.com/w9CFqGS.jpg
但你一直说用 UIPageViewController、UIScrollView 还有 bounce
我真的不知道怎么跟你讨论 才会给你连结好有个基本概念
滑动退出的确有一万种实作方式
但 Apple 就提供超好用的 API 了为什么不直接用呢?
UIPageViewController 还有点可能
但就算是 Android 滑动退出的实作方式也用不到 scrollView
压根不会出现 bounce 的关键字
一般业界 包括你说你有使用过的 Facebook、Twitter 都是使用相同的手势侦测规则
也都是滑动到一半或是快速滑动触发
每个 app 的差异大多只有 threshold 的值
还有动画的执行时间长短而已
为什么硬要我把对的实作方式改成错的呢?
我要继续潜水了 每次出来都有人找我吵架 囧