【问题标题】:SwiftUI hide hamburger icon in list while in EditModeSwiftUI 在 EditMode 中隐藏列表中的汉堡图标
【发布时间】:2021-10-21 21:24:42
【问题描述】:

非常不言自明的问题,我正在寻找一种方法来隐藏汉堡菜单(而不是 .moveDisabled(true),我仍然希望 .onMove 工作,因为我需要拖放功能)当 EditMode 是在 SwiftUI 中活跃。

这种情况,我有一个列表,其中包含一堆需要能够移动的元素,但是右侧的汉堡包/3 行图标超级难看,并且打乱了我的应用程序的流程。如果有一个丑陋的解决方案,比如将边距设置为正确的超高或类似的东西,我非常愿意这样做;我只需要一种在不显示图标的情况下保留拖放功能的方法。

我的代码看起来像这样

List {
     ForEach(items) { item in 
          item.contextMenu {
               //...
          }
     }.onMove(perform: onMove)
}.environment(\.editMode, $editMode)

代码中显然还有其他内容但不相关,只需要知道如何隐藏汉堡图标即可。

【问题讨论】:

标签: swiftui swiftui-list


【解决方案1】:

我知道你可以用 LazyVGrid 而不是 List 来做到这一点。然后对于代表一个单元格的每个视图,添加 .onDrag 和 .onDrop。然后您的解决方案是完全可定制的。 您的模型需要在 onDrag 中处理返回一个适当的 NSItemProvider,并且它需要在 onDrop 中提供一个 DropDelegate 对象。

我会 google swift onDrop,你会发现很多讨论。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2018-11-09
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多