考虑NavigationView中的列表,如下所示:

struct ContentView: View {
    var body: some View {
        NavigationView {
            List {
                Text("Shovel")
                Text("Bucket")
                Text("Sieve")
            
            }.navigationTitle("Sandbox")
        }
    }
}

我想在列表条目的后缘添加.swipeActions,如下所示:

Text("Shovel")
    .swipeActions(edge: .trailing) {
        Button{} label: { Image(systemName: "trash.fill") }
    }

SwipeAction

但一旦我将列表条目嵌入到NavigationLink中,.swipeActions就不起作用了.

NavigationLink(destination: Text("Shovel")) {
    Text("Shovel")
        .swipeActions(edge: .trailing) {
            Button{} label: { Image(systemName: "trash.fill") }
        }
}

NavigationLink

现在谈谈这个问题:

为什么会这样?我怎样才能同时拥有这两个功能?

谢谢你的帮助.

推荐答案

您应该将SwipeAction添加到NavigationLink,如下所示:

NavigationLink(destination: Text("Shovel")) {
    Text("Shovel")
}.swipeActions(edge: .trailing) {
    Button{} label: { Image(systemName: "trash.fill") }
}

发生这种行为的原因是,刷卡操作是modifier,表示List Row.当你只有Text岁时,那是一排.

但是,在任何View(VStackHStackNavigationLink…)中嵌入内容时,该父级成为Row.

Ios相关问答推荐

AlGolia InstantSearch Swift Package Manager引发编译错误

Xcode15.3上的生成错误:调用的对象类型';facebook::flipper::SocketCertificateProvider';不是函数或函数指针

带有动画层的UIView表示不会在工作表中设置动画

SWIFT中具有可选返回类型和泛型的网络请求

当文本为空时,具有垂直轴的SwiftUI文本字段不会与FirstTextBaseline对齐

如何删除NavigationView中的默认透明标头?

垂直分页 UIScrollView 高度不正确

Swift:判断 Foundation (NS)Errors 与自定义协议的一致性

SwiftUI - TextField - 在焦点上清除 Double 类型的值,在取消 Select 时恢复

为什么常量属性可能在 Swift 类中被初始化两次?

SwiftUI 中的描边图像边框

发生异常:需要 issuerId

iOS,Swift 5,AppDelegate open url / .onOpenUrl - 如何找到调用我的自定义方案的调用应用程序

Swift tableView 分页

在 iPhone 中将 UIViewController 显示为弹出窗口

在 iOS 7 上更改标签栏色调 colored颜色

如何缩小 UIImage 并使其同时变得清晰/锐利而不是模糊?

以编程方式 Select UITextField 中的所有文本

UITextView 从文本的底部或中间开始

如何识别导航堆栈中的前一个视图控制器