当用户的手指不再位于启动 panGesture 的视图中时,如何结束 UIPanGesture?

how can i end a UIPanGesture when the user's finger is no longer in the view where the panGesture was initiated?

我是相当新的 iOS 编程和 swift。

我不知道如何在用户的手指不再位于发起平移手势的视图中时强制我的平移手势停止。

目前,当用户按下该视图并拖动时,平移会正确启动。但它会一直持续到用户从显示屏上的任何位置抬起手指。当用户的手指不再在该视图中或用户抬起手指时,我希望平移结束。

如有任何帮助,我们将不胜感激。谢谢

我相信这个方法在整个平移手势中被调用。您只需保留对发起平移手势的视图的引用。

- (IBAction)handlePan:(UIPanGestureRecognizer *)panRecognizer
{
    CGPoint panPoint = [panRecognizer locationInView:self.view];

    if(CGRectContainsPoint(initiatedView, panPoint))
    {
        // Carry on with pan behaviour
    }
    else
    {
        // Do nothing
    }
}

CGRectContainsPoint() 参考资料

https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CGGeometry/index.html#//apple_ref/c/func/CGRectContainsPoint

根据上面的有用帖子,我设法想出了适合我的代码。

if CGRectContainsPoint(initiatedView.frame, gesture.locationInView(initiatedView))
{
    // do stuff
} else {
    gesture.enabled = false
}