大手機小巧思

最近 iPhone Xs Max 頂著 6.5 吋螢幕的光環霸氣降臨,這近乎是老賈黃金比例 3.5 吋的兩倍大了,手機越做越大對使用者的操作行為勢必產生影響。

以返回上一頁這件事來說,iPhone 相較於 Android 手機少了底部的返回鍵,因此習慣點擊左上角的返回箭頭,以往小尺寸的手機一般人可以很輕易的做到,但在 4.7吋、5.5吋、甚至 6.5 吋 iPhone 相繼問世後,要能讓使用者在捷運上流暢地單手操作 app 變成一件頗具挑戰的事情。

而 Apple 當然也早有對策,當我們產生預設的 Navigation bar 時,只要對著螢幕邊緣滑動,就可以很輕易的「滑」到上一頁,我本身在大尺寸手機上就大量使用這個手勢。

 

我把滑動手勢弄丟惹

檢查一下自己的 navigation 頁面是否無法透過滑動返回到上一頁,這很有可能是因為客製化 navigation bar item 所造成,我們可以透過 UIGestureRecognizerDelegate 來把它找回來:


// MARK: – View Lifecycle
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.navigationController?.interactivePopGestureRecognizer?.delegate = self
}
// MARK: – UIGestureRecognizerDelegate
extension MyViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}

 

關閉滑動手勢

相反的,如果想要取消 Navi 內建的滑動返回上一頁手勢,可以使用這個設定:


self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false