How do I set up an UIScreenEdgePanGestureRecognizer using Interface Builder?

后端 未结 7 1510
自闭症患者
自闭症患者 2021-02-06 23:48

I can\'t get UIScreenEdgePanGestureRecognizer to work when I create when I add it to my view controller using Interface Builder, so I\'m asking here to establish wh

7条回答
  •  甜味超标
    2021-02-07 00:32

    I have tried it in Xcode 7.0 Beta 4 (7A165t) and it's still a bug. Adding the Screen Edge Pan Gesture Recognizer via Interface Builder doesn't call the referenced IBAction, however adding it programmatically like this works fine:

    class ViewController: UIViewController, UIGestureRecognizerDelegate {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            let edgeGestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action: "userSwipedFromEdge:")
            edgeGestureRecognizer.edges = UIRectEdge.Left
            edgeGestureRecognizer.delegate = self
            self.view.addGestureRecognizer(edgeGestureRecognizer)
        }
    
        func userSwipedFromEdge(sender: UIScreenEdgePanGestureRecognizer) {
            if sender.edges == UIRectEdge.Left {
                print("It works!")
            }
        }
    }
    

    Hint: Don't forget to add the UIGestureRecognizerDelegate protocol to your class. Otherwise you'll get an error at edgeGestureRecognizer.delegate = self

提交回复
热议问题