长时间点击后开始拖放

时间:2014-10-09 13:02:05

标签: ios swift drag-and-drop uigesturerecognizer

我正在创建一个视图,在通过长按激活“编辑模式”后,可以通过拖放重新排列其子视图。

我用这两个手势重新合并UILongPressGestureRecognizerUIPanGestureRecognizer

一切都很好,但我想能够开始拖动我的子视图,而不必再次点击我的视图(就像你在跳板上重新安排你的图标一样)。

有没有办法做这样的事情?

编辑:

我试过了:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    var res = false

    if ((gestureRecognizer == longTapGesture && otherGestureRecognizer == panGesture) || (gestureRecognizer == panGesture && otherGestureRecognizer == panGesture)) {
        res = true
        println("")
    }
    return true
}

没有成功。

1 个答案:

答案 0 :(得分:1)

首先,这2个手势识别器应该可以很好地协同工作。通常其中一个会取消另一个。为了防止您使用UIGestureRecognizerDelegate方法gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer:并为两个识别器返回YES。

之后你需要有一个布尔属性来锁定你的平移效果,然后再进行长按。 UILongPressGestureRecognizer目标方法只应在此属性设置为YES时执行某些操作。当pan手势完成/重置时,请记住将此属性设置为NO。