唉...
我就來科普一下吧
正常這種文章應該是出現在 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 的值
還有動畫的執行時間長短而已
為什麼硬要我把對的實作方式改成錯的呢?
我要繼續潛水了 每次出來都有人找我吵架 囧