Swift PageViewControllerの両端タップのジェスチャーを無効にする


概要

PageViewControllerはデフォルトで左右のスワイプの他、View両端のタップも検知し、befor、afterメソッドを着火している。

スワイプのみ検知し、View両端のタップは無効とするよう処理を施す。


実装

PageViewControllerに登録されているUITapGestureRecognizerを取り出し、無効にする。

//pageViewの両端タップを無効に
let tapGestureRecognizer = pageViewController?.gestureRecognizers.filter{ $0 is UITapGestureRecognizer }.first as! UITapGestureRecognizer
tapGestureRecognizer.isEnabled = false


参考

UIPageControllerで一部のGestureのみを無効にする方法 - Qiita

調べても中々出てこず、かなり対応までに時間がかかった。記事に感謝。