首页 > 解决方案 > 如何使用 UIDragInteraction 立即开始拖动?

问题描述

我正在使用 UIDragInteraction 并且效果很好。

let dragInteraction = UIDragInteraction(delegate: self)
myView.addInteraction(dragInteraction)
dragInteraction.isEnabled = true

正如预期的那样,当我在 myView 上长按时开始拖动。我现在想改变这种行为。我希望在触摸 myView 并移动手指时立即开始拖动,而不是长按?

我尝试使用平移手势来启动移动,但我不知道如何启动 dragInteraction。

let panGesture = UIPanGestureRecognizer(target: self, action: #selector(panAction))
panGesture.minimumNumberOfTouches = 1
panGesture.maximumNumberOfTouches = 1
panGesture.cancelsTouchesInView = false
panGesture.delaysTouchesBegan = false
myView.addGestureRecognizer(panGesture)

请帮忙。谢谢。

标签: iosswiftuipangesturerecognizer

解决方案


目前,标准的拖放实现似乎无法做到这一点。

您可以降低与minimumPressDurationUILongPressGestureRecognizer相关联的值UIDragInteraction。对此的进一步解释可以在这个答案中找到:set minimumPressDuration for UIDragInteraction

除此之外,您始终可以通过使用手势识别器等来实现自己的拖放交互。这当然可能很乏味并且不是您想要的。


推荐阅读