在SwiftUI的List内的项目中添加contextMenu

时间:2019-10-27 20:56:25

标签: contextmenu swiftui

我创建了一个图片库,其中有很多单元格,每个单元格中都有一个列表。有几个UIImages。 我添加了contextMenu图像,但是当我长按每个图像时,将调用整个单元格而不是每个图像。 谁能帮助我如何为列表中的每个项目添加contextMenu

struct PhotoList : View {

var photoLibrary = PhotoLibrary

var body : some View {
    GeometryReader { geometry in
        List(self.photoLibrary, id: \.self) { imageSet in
            HStack (alignment: .center) {
                ForEach(imageSet, id: \.self) { image in
                    Image(uiImage: image)
                        .scaledToFill()
                        .cornerRadius(7)
                        .padding(3)
                        .frame(width: 150, height: 150, alignment: .center)
                        .contextMenu {
                            VStack {
                                Button(action: {}) {
                                    HStack {
                                        Text("Add to Today")
                                        Image("plus.circle")
                                    }
                                }
                            }
                    }

                }
            }
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

据我所知,上下文菜单必须至少具有两个按钮,但是我认为通过以下方式就足够了:

Image(uiImage: image)
.scaledToFill()
.cornerRadius(7)
.padding(3)
.frame(width: 150, height: 150, alignment: .center)
.contextMenu {
    Button(action: {}) {
        Text("Add to Today")
        Image("plus.circle")
    }
    Button(action: {}) {
        Text("Some Other Button")
        Image("globe")
    }
}