ios - Collection View 拖放延迟

标签 ios uicollectionview drag-and-drop

有没有办法调整在 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/

相关文章:

ios - ObjC class_addMethod 不检查参数类型?

ios - 展开多个导航 Controller

ios - 带有 CoreData 的水平 UICollectionView

visual-studio-2010 - Visual Studio 2010引入 "No drag and drop customization of menus and toolbars"

google-chrome - 使用Dart JS代码在Chrome中拖放[错误:版本35.0.1916.114 m] [确定:版本34.0.1847.137 m]

winapi - 将文件/文本拖放到托盘图标(C#、Windows 窗体)

ios - NSKeyedUnArchiver 崩溃

ios - 在 API 调用中使用 Codable 和 Decodable

ios - 如何从 CollectionView 中的特定索引开始

plist 中 UICollectionView 中的 iOS 部分 - 从 UILabel 分配给 NSString 的不兼容指针类型