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

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

概要

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

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