Ability to shorten UIDragInteraction's long press timing

后端 未结 2 984
渐次进展
渐次进展 2021-01-05 23:17

I am currently using UIDragInteraction and UIDropInteraction made available in iOS 11 to make a simple drag and drop feature, where user could drag

2条回答
  •  孤街浪徒
    2021-01-06 00:10

    There's no obvious way to do this, but I was just facing the same problem and took a peek into the gesture recognizers of the view that the dragInteraction is attached to. It a _UIDragLiftGestureRecognizer which is not part of the public API, but turns out this is just a subclass of UILongPressGestureRecognizer.

    So, after having added your UIDragInteraction to your view, and after having added that view to the view hierachy (since I'm using a custom UIView subclass I just added it into didMoveToSuperview()), you can do something like this:

    if let longPressRecognizer = gestureRecognizers?.compactMap({ $0 as? UILongPressGestureRecognizer}).first {
        longPressRecognizer.minimumPressDuration = 0.1 // your custom value
    }
    

提交回复
热议问题