有没有办法调整在 Collection View 单元格上开始拖动所需的时间?类似于 UILongPressGestureRecognizer
minimumPressDuration
属性。
我知道我们可以遍历附加到 View 的所有手势识别器,并可能找到我们需要的那个。但这种方法感觉并不可靠。
最佳答案
由于没有更好的解决方案,我仍然使用“迭代手势识别器”的方法。
代码如下:
gestureRecognizers?.forEach { (recognizer) in
if let longPressRecognizer = recognizer as? UILongPressGestureRecognizer {
longPressRecognizer.minimumPressDuration = Constants.DragLongPressMinimumDuration
}
}
Constants.DragLongPressMinimumDuration
是在 Constants
结构中定义的 Double
。
重要说明:在设置拖放后对 Collection View 本身(而不是单元格)执行此操作。
解决方案适用于 iOS 版本 11 和 12。
当然这是在使用私有(private) API 的边缘,该识别器的实际类是 _UIDragLiftGestureRecognizer
(它是私有(private) API 和 UILongPressGestureRecognizer
子类的一部分)。但由于我们将其转换为 UILongPressGestureRecognizer
,从技术上讲我们没有使用私有(private) API。
关于ios - Collection View 拖放延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561281/