16581


`UIScreenEdgePanGestureRecognizer`を`ViewController`の`view`に追加しても認識しません。

通常の`GestureRecognizer`のように、ビューに追加するだけでは使えないのでしょうか？

  * `Left`などの方向を設定しています。
  * `view`の`userInteractionEnabled` は `true`です。
  * 一本指でのPan認識ができればいいです。
  * `UIGestureRecognizerDelegate`プロトコルを`ViewController`に適用して、  
`edgePanGestureRecognizer`の`delegate`に`ViewController`を指定しています。

そのほかに何か設定が必要でしょうか？

よろしくお願いします。


CC BY-SA 3.0
2015-09-11T16:53:02.900
16531
2015-09-16T11:39:40.327
2015-09-16T11:39:40.327
12297
12297
question
ios swift xcode
UIScreenEdgePanGestureRecognizerをViewControllerのviewに追加しても認識されません。


Xcode6.4にて。

新規に「Single View Application」Projectを作成し、ViewController.swiftに以下を記述。  
単純にUIScreenEdgePanGestureRecognizerを追加しているだけのコードです。

iPhone6シミュレータを起動し、画面左端部分をパン操作することで当該メソッドが呼ばれログが出ました。

[code]

    import UIKit
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            let screenEdgeRecognizer = UIScreenEdgePanGestureRecognizer(target: self,  action: "edgePanGesture:")
            screenEdgeRecognizer.edges = .Left
            self.view.addGestureRecognizer(screenEdgeRecognizer)
        }
    
        internal func edgePanGesture(sender: UIScreenEdgePanGestureRecognizer) {
            NSLog("called");
            if sender.state == .Ended {
                NSLog("ended");
            }
        }
    }
    
[/code]

他の要素が動作を阻害しているのかも。  
該当部分のコードを貼ることで解決に近付くかもしれません。

他の要素をコメントアウトし問題を切り分けてみてください。


CC BY-SA 3.0
2015-09-14T03:58:35.127
16581
2015-09-14T03:58:35.127
11109
16531
answer