iPhone 為什麼沒有 Android 的右邊框左滑返回手勢?
感覺單手,右手操作,人機交互,這一點是落後安卓啊。不知道蘋果的工程師為什麼沒有注意這個問題。至少是一種低效率的返回。蘋果的微信和自帶瀏覽器返回很不方便。手小的人吃不消! 是不是一種缺陷?
作為一個 iOS 和 Android 的雙持戰士,我覺得有必要來回答一下
首先 Android 的右邊框左滑是全面屏的時代興起的,基本上目前市面上所有的全面屏手機都有這個功能,可以說是非常實用,這個必須要給 Android 一個贊
iOS 之所以沒有這個手勢,個人猜測是下面兩個原因:
- iOS 的大部分界面,比如一級界面進二級界面,都是二級界面從右往左壓在了一級界面上,就像兩張紙一樣,既然你是從左往右壓在了一級界面上,那麼返回的時候從右往左走就沒啥毛病,所以左邊框右滑這個動作很符合操作視覺邏輯,而右邊框左滑就不符合操作視覺邏輯
- iOS 裡面 App 的界面如果設計得當,那麼其實不用手指到左邊框,在內容頁右滑就可以返回,比如知乎,你在回答頁面右滑就會回到上一級界面。但是,理想很豐滿,顯示很骨感,滑動衝突這個古老而又敏感、讓程序員恨的牙痒痒、讓產品經理髮際線後移的問題,怎麼解決就很蛋疼。比如說,一個列表的 Item,你在上面右滑是觸發 item 的右滑手勢(或者自己處理,或者不響應)呢,還是觸發 iOS 的返回上一級界面呢?不同的產品經理選擇了不同的實現,
- 比如知乎的答案列表微博的微博詳情頁,選擇的就是觸發 iOS 的返回上一級界面,刷起來賊爽,大拇指就可以搞定
- 微信的對話頁和朋友圈,就選擇不作處理,作為平時使用最高頻率的 App,要返回上一級簡直太蛋疼了...
- 釘釘的主頁就直接把這個手勢給搞成點擊了......
所以 iOS 用起來就比較蛋疼,常用的應用,微信的各個界面要左邊框右滑才能返回上一頁,如果用的是大屏幕,那手指移的叫一個酸爽;知乎和微博刷起來就很爽,內容頁就可以右滑返回。
我大 Android 就沒有這個問題,尤其是曲面屏的時候,部分機器右邊框左滑手勢還有一個小小的動畫,感覺還蠻調皮的..
![](http://i1.wp.com/pic2.zhimg.com/v2-5c181be1b220e796c3b7a8162028f3d4_r.jpg?source=1940ef5c)
iOS和安卓手勢的不同在於,安卓是手勢映射按鍵,監測到滑動「結束」後,就播放返回動畫並顯示上一個頁面。
iOS則是,手指滑到哪,拖拽的元素就跟到哪,哪怕拽到一半又拽回去它也跟著走。
![](http://i1.wp.com/pic4.zhimg.com/v2-97e43aa256d7a2a6927689bc17e981e0_r.jpg?source=1940ef5c)
至於左劃還是右滑的問題:
現在大多數app的頁面跳轉邏輯都是類似下圖這種:
![](http://i1.wp.com/pic4.zhimg.com/v2-96ce93532f25915c401bc2cd704f7187_r.jpg?source=1940ef5c)
所以,出於模擬、擬物化的操作,從左往右滑動返回的邏輯順理成章。
對了,safari不僅支持左右滑返回,還支持右左滑前進。
![](http://i1.wp.com/pic1.zhimg.com/v2-97e43aa256d7a2a6927689bc17e981e0_r.jpg?source=1940ef5c)
iOS上滑動返回也分兩種,屏幕中央滑動和左側邊緣滑動。
一般來說屏幕中央滑動適用於本層邏輯內的頁面切換(比如老版知乎左右滑動切換答案頁),
而左側邊緣滑動適用於大層的返回(比如知乎從答案頁返回到問題頁、首頁)。
![](http://i1.wp.com/pic3.zhimg.com/v2-97e43aa256d7a2a6927689bc17e981e0_r.jpg?source=1940ef5c)
![](http://i1.wp.com/pic4.zhimg.com/v2-97e43aa256d7a2a6927689bc17e981e0_r.jpg?source=1940ef5c)
![](http://i1.wp.com/pic2.zhimg.com/v2-49d2d63ed81617f2dece49d85b7fc366_r.jpg?source=1940ef5c)
![](http://i1.wp.com/pic2.zhimg.com/v2-3eae71a4eb9b7915d510f55f81eba1eb_r.jpg?source=1940ef5c)
![](http://i1.wp.com/pic1.zhimg.com/v2-27b525da601b98c24f1c838547808cc1_r.jpg?source=1940ef5c)
我記得你果早前說過手勢操作和 UI 邏輯的問題.
如果一個手勢從右往左滑動, 但是當前頁面卻是從左向右過渡, 會讓用戶困惑, 而且不合邏輯.
iOS 這個手勢是隨頁面而動的(也就是你們成天說的「跟手」); 而 Android 上大多都是手勢結束以後, 才會執行返回這個動作. 在上面加個多麼可愛的小動畫也不能改變這個順序.
而且暫且不說, 如果我沒記錯的話, 關於這個話題最早的輿論是這樣的:
「為什麼 iOS 沒有返回鍵 垃圾」
而 iOS 這邊的回復才是
「我們有手勢操作啊」.
這符合蘋果的一向設計習慣:
蘋果:我不要你覺得,我要我覺得,我說手機必須用左手,你就只能用左手,凡是想用右手拿手機的,一定是你用錯了,不可能是蘋果的錯。
安卓:右手持手機的是用戶,左手持手機的也是用戶,兩種用戶我們都提供服務,你要什麼,我們就給什麼。
其實右滑返回手勢一直是iOS引以為傲的體驗,如今Android手勢體驗感強與iOS
作為一枚iOS開發者,著實iPhone在全面屏左右滑動處理返回等體驗已經掉隊了,隨著全面屏大屏幕時代,這些小體驗對於日常使用手機尤其重要。
Android 10後去體Android手機,各種手勢體驗讓人心曠神怡。大屏幕時代,全屏手勢,Android左右滑動都可以返回,甚至還可以從下到上滑,Android手勢體驗感強與iPhone。
1、push壓棧,從右到左,右滑返回、或返回按鈕,pop到上一個界面(控制器:Controller),Apple API設計。
iOS的右滑返回手勢,系統API是在屏幕邊緣向右滑動,中間或其他地方不響應。從 A 界面push壓棧到B界面,手勢由導航控制器(navigationController)控制,有些可能從A push 到B沒有返回手勢,可能屏蔽了右滑返回,push可以新增一些手勢處理,不過API設計緣由,暫時無法添加其他手勢,即現在右滑返回單一手勢。
let infoVC = ViewController()
self.navigationController?.pushViewController(infoVC, animated: true)
/// pop
self.navigationController?.popViewController(animated: true)
2、present從下到上,iOS 13以前系統無任何返回手勢,iOS 13 默認下拉dismiss界面,彌補了present後無手勢返回的痛點,不得不點擊按鈕返回,只是來的有些晚= =。
let infoVC = ViewController()
//infoVC.modalPresentationStyle = .fullScreen 默認下拉返回,全屏presnt沒有下拉返回= =
self.present(infoVC, animated: true, completion:nil)
/// dismiss
self.dismiss(animated: true, completion: nil)
期待Apple交互設計師、工程師創作更多實用的iOS手勢,畢竟屏幕越來越大了,手勢體驗需求越發的重要,似乎iOS用戶沉浸在右滑返回,看到大部分用戶都是雙手操作,尤其是24鍵盤,而我我依舊習慣單手操控,設備6.1英寸。
推薦閱讀:
※華為手機的這些手勢功能 操作起來66的!
※MIUI的全面屏手勢 並不應該只是全面屏手機的專享功能
※主頁真的重要嗎?Android P 手勢操作正在讓它退居二線