SwiftUI 点击手势阻止列表中的项目删除操作

Posted

技术标签:

【中文标题】SwiftUI 点击手势阻止列表中的项目删除操作【英文标题】:SwiftUI tap gesture blocks item deleting action in List 【发布时间】:2020-06-08 12:29:22 【问题描述】:

所以我有一个List 的视图,这个视图也有侧边菜单。我将tapGesture 添加到我的VStack 以在其打开时关闭侧面菜单,但随后我面临问题,tapGesture 正在阻止onDeleteList 方法。任何想法如何解决这个问题??

这里是代码示例:

VStack 
.....
    List 
          ForEach()
           //list elements here
          
          .onDelete 
            // delete action here
          
    

.onTapGesture 
// action here 

另外,如果我在删除时滑动一次直到结束,它就可以工作。但如果我轻轻滑动并尝试按下Delete 按钮,则不会发生任何事情。

【问题讨论】:

嗨,Alex,您找到解决此问题的方法了吗? 【参考方案1】:

.onTapGesture 替换为simultaneousGesture 修饰符。

.simultaneousGesture(TapGesture().onEnded 
    // action here 
)

【讨论】:

我试过了,还是不行,还是一样。 在 macOS 中遇到此问题,注意到列表选择被放置在列表项中的同时点击/双击手势阻止,尽管 TextFields 仍按预期工作。

以上是关于SwiftUI 点击手势阻止列表中的项目删除操作的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止视图在 SwiftUI 中出现动画?

点击 SwiftUI 时从列表中删除

Google AdMob 干扰 SwiftUI 中的摇动手势

在 SwiftUI 中的表单上捕捉点击手势

SwiftUI:带有onTapGesture的列表单元格内的菜单触发手势

在 SwiftUI 中按 ID 删除列表中的项目