LoginSignup
5
6

More than 5 years have passed since last update.

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

Posted at

UIPageControllerは、page curlモードだと、デフォルトでは

  • 画面の左右端タップでページめくり
  • 画面を左右スワイプでページめくり

の2つのgestureRecognizerを持っている。

pageViewController.gestureRecognizers

で取得できるので、型判別して、それぞれを無効化することが出来る。

サンプルコード

class HogeViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let pageVC = //pageViewControllerを取得してきます

        // tapによるページめくりを担当するインスタンスを取得 
        let tapGestureRecognizer = pageViewController.gestureRecognizers.filter{ $0 is UITapGestureRecognizer }.first as! UITapGestureRecognizer

        // swipeによるページめくりを担当するインスタンスを取得 
        let panGestureRecognizer = pageViewController.gestureRecognizers.filter{ $0 is UIPanGestureRecognizer }.first as! UIPanGestureRecognizer

        // 例 swipeによるページめくりは有効、tapによるページめくりは無効
        tapGestureRecognizer.enabled = false
        panGestureRecognizer.enabled = true
    }
}
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6