SwiftUI - iPad 上的拖放重新排序是不是可以在没有 EditMode 的情况下工作?

Posted

技术标签:

【中文标题】SwiftUI - iPad 上的拖放重新排序是不是可以在没有 EditMode 的情况下工作?【英文标题】:SwiftUI - Drag and drop reorder on iPad works without EditMode?SwiftUI - iPad 上的拖放重新排序是否可以在没有 EditMode 的情况下工作? 【发布时间】:2019-11-16 07:40:57 【问题描述】:

在 SwiftUI 中,如果您有一个列表,则需要启用编辑模式以显示重新排序控件,以便您可以重新排序行(假设您已添加 .onMove 修饰符)。

在 iPad 上,您可以在不启用 EditMode 的情况下对行重新排序,这会使任何长按手势停止工作。

为什么这种行为如此不同,有没有办法让 iPad 的行为与 iPhone 一样?

TIA。

【问题讨论】:

Mac 催化剂也是如此。您可以拖放项目而无需在 Mac 上激活编辑模式。 【参考方案1】:

您可以有条件地禁用重新排序以启用对一行长按手势的识别:

.onMove(perform: isEditing.wrappedValue ? move(from:to:) : nil)

其中 isEditing 是与 EditMode 的布尔绑定。

【讨论】:

以上是关于SwiftUI - iPad 上的拖放重新排序是不是可以在没有 EditMode 的情况下工作?的主要内容,如果未能解决你的问题,请参考以下文章

被 SwiftUI 中的拖放所困扰

SwiftUI onDrag 在设备上运行时不显示预览图像

SwiftUI |使用 onDrag 和 onDrop 在一个 LazyGrid 中重新排序项目?

Qt4是不是实现了窗口图标的拖放?

使用角材料的拖放重新排列垫表行

Qt5:使用 QSortFilterProxyModel 时的拖放