SwiftUI表单/列表行中的多个上下文菜单

3

在表单/列表的同一行中放置两个具有不同contextMenu的对象是否可能?

例如:

List {
  HStack {
    Image("image.A").contextMenu{ Text("I'm A") }
    Image("image.B").contextMenu{ Text("I'm B") }
  }
}

类似问题:SwiftUI - 在列表行中放置多个按钮

1个回答

2
这里有一个可能的方法。使用@State来区分情况,并使用onLongPressGesture进行修改。
在iOS 13.5上测试过。
struct ContentView: View {
    
    @State var whichImage: Int = 0
    
    var body: some View {
        List {
          HStack {
            Image("image1").resizable().frame(width: 40, height: 40).onLongPressGesture {
                self.whichImage = 1
            }
            Image("image2").resizable().frame(width: 40, height: 40).onLongPressGesture {
                self.whichImage = 2
            }
            
          }.contextMenu{ Text(String(self.whichImage)) }
        }
    }
}

结果:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接