【发布时间】:2018-11-30 16:21:03
【问题描述】:
有没有办法调整在集合视图单元格上开始拖动所需的时间?类似于UILongPressGestureRecognizerminimumPressDuration 属性。
我知道我们可以遍历附加到视图的所有手势识别器,并可能找到我们需要的那个。但这种方法感觉不可靠。
【问题讨论】:
标签: ios uicollectionview drag-and-drop
有没有办法调整在集合视图单元格上开始拖动所需的时间?类似于UILongPressGestureRecognizerminimumPressDuration 属性。
我知道我们可以遍历附加到视图的所有手势识别器,并可能找到我们需要的那个。但这种方法感觉不可靠。
【问题讨论】:
标签: ios uicollectionview drag-and-drop
由于没有更好的解决方案,我仍然使用“迭代手势识别器”的方法。
代码如下:
gestureRecognizers?.forEach { (recognizer) in
if let longPressRecognizer = recognizer as? UILongPressGestureRecognizer {
longPressRecognizer.minimumPressDuration = Constants.DragLongPressMinimumDuration
}
}
Constants.DragLongPressMinimumDuration 是在Constants 结构中定义的Double。
重要提示:在设置拖放后在集合视图本身(而不是单元格)上执行此操作。
解决方案适用于 iOS 版本 11 和 12。
当然,这是在使用私有 API 的边缘,该识别器的实际类是 _UIDragLiftGestureRecognizer(它是私有 API 的一部分,并且是 UILongPressGestureRecognizer 子类)。但由于我们将其转换为 UILongPressGestureRecognizer,因此从技术上讲,我们没有使用私有 API。
【讨论】: