我有一个UIPanGestureRecognizer,当手势到达屏幕的左侧或右侧时,我想调用一个方法。

我考虑过要获取位置,并将其与边缘的位置进行比较。

有没有更好的办法?如果没有,那么标准的是什么呢?是10%左右吗?更多?减?

最佳答案

当检测用户是否接近屏幕的左/右边缘时,它似乎起作用。

override func viewDidLoad() {
    super.viewDidLoad()
    let screenWidth = UIScreen.mainScreen().bounds.size.width
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    if let touch = touches.first as UITouch!{
        let currentPoint = floor(touch.locationInView(self.view).x)
        //print("touched point \(currentPoint) x")
        edgeReach(currentPoint)
    }
}

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
    if let touch = touches.first as UITouch! {
        let currentPoint = floor(touch.locationInView(self.view).x)
        //print("moved to point \(currentPoint) x")
        edgeReach(currentPoint)
    }
}

func edgeReach(locationX: CGFloat) {
    if locationX >= 364 {
        print("closer to right edge")
    }
    if locationX <= 50{
        print("close to left edge")
    }
}

如果您也将此合并到当前的UIPanGestureRecognizer中。

关于ios - 检测用户何时到达设备的左侧或右侧屏幕边缘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33536926/

10-11 22:14