我正在创建一个视图,在通过长按激活“编辑模式”后,可以通过拖放重新排列其子视图。
我用这两个手势重新合并UILongPressGestureRecognizer
和UIPanGestureRecognizer
。
一切都很好,但我想能够开始拖动我的子视图,而不必再次点击我的视图(就像你在跳板上重新安排你的图标一样)。
有没有办法做这样的事情?
编辑:
我试过了:
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
}
没有成功。
答案 0 :(得分:1)
首先,这2个手势识别器应该可以很好地协同工作。通常其中一个会取消另一个。为了防止您使用UIGestureRecognizerDelegate方法gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer:并为两个识别器返回YES。
之后你需要有一个布尔属性来锁定你的平移效果,然后再进行长按。 UILongPressGestureRecognizer目标方法只应在此属性设置为YES时执行某些操作。当pan手势完成/重置时,请记住将此属性设置为NO。