質問: `UIScreenEdgePanGestureRecognizer`を`ViewController`の`view`に追加しても認識しません。 通常の`GestureRecognizer`のように、ビューに追加するだけでは使えないのでしょうか? * `Left`などの方向を設定しています。 * `view`の`userInteractionEnabled` は `true`です。 * 一本指でのPan認識ができればいいです。 * `UIGestureRecognizerDelegate`プロトコルを`ViewController`に適用して、 `edgePanGestureRecognizer`の`delegate`に`ViewController`を指定しています。 そのほかに何か設定が必要でしょうか? よろしくお願いします。
回答: Xcode6.4にて。 新規に「Single View Application」Projectを作成し、ViewController.swiftに以下を記述。 単純にUIScreenEdgePanGestureRecognizerを追加しているだけのコードです。 iPhone6シミュレータを起動し、画面左端部分をパン操作することで当該メソッドが呼ばれログが出ました。 ``` 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"); } } } ``` 他の要素が動作を阻害しているのかも。 該当部分のコードを貼ることで解決に近付くかもしれません。 他の要素をコメントアウトし問題を切り分けてみてください。