拖放可防止多个项目同时移动

时间:2014-10-21 13:49:51

标签: ios swift drag-and-drop uigesturerecognizer uipangesturerecognizer

我在UIScrollview中有多个自定义子视图,这些子视图继承自UIView并且可以拖动。除了我能够同时拖动两个或更多子视图外,一切正常。手势识别器附加到我的自定义子视图,并在此类中实现。 有没有办法阻止这种行为?

编辑:我已经尝试添加代理

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return false
}

但由于所有子视图都处理了自己的手势识别器,因此无法正常工作。

2 个答案:

答案 0 :(得分:0)

GestureRecognizerDelegate协议具有指定多个手势识别器是否可以同时操作的功能。我不知道这是否适用于您的情况,但值得一试:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return false
}

答案 1 :(得分:0)

我知道这是一个老问题,但我遇到了同样的问题,我只想同时拖动一个项目。您可以遍历所有可拖动的子视图并更新它们的属性,如下所示。

           subiew.isExclusiveTouch = true
    subview.isMultipleTouchEnabled = false

现在只有一个子视图可以同时拖动。