Ios 在快捷菜单中显示不同的视图

Ios 在快捷菜单中显示不同的视图,ios,swift,swiftui,contextmenu,beta,Ios,Swift,Swiftui,Contextmenu,Beta,我正在用SwiftUI开发一个Mastodon客户端,我想让用户可以像许多其他应用一样,从上下文菜单中看到文章的预览 我知道我可以在UIKit中实现这一点,但我还没有在SwiftUI中看到这一点 比如说,我有两个视图:CompactView和ExpandedView。 CompactView由一个图像和一个文本组成,行限制为2,以便每隔一行隐藏一行。ExpandedView也由一个图像和一个文本组成,但是文本的行限制是20,因此所有帖子内容都会显示出来 如果用户强制触摸CompactView,我

我正在用SwiftUI开发一个Mastodon客户端,我想让用户可以像许多其他应用一样,从上下文菜单中看到文章的预览

我知道我可以在UIKit中实现这一点,但我还没有在SwiftUI中看到这一点

比如说,我有两个视图:CompactView和ExpandedView。 CompactView由一个
图像
和一个
文本
组成,行限制为2,以便每隔一行隐藏一行。ExpandedView也由一个
图像
和一个
文本
组成,但是文本的行限制是20,因此所有帖子内容都会显示出来

如果用户强制触摸CompactView,我希望在上下文菜单中显示ExpandedView,而不是CompactView。我怎样才能做到这一点

struct ContentView:some视图{
var body:一些观点{
列表(0..<5){
CompactView()
}
}
}
结构紧凑视图:一些视图{
var body:一些观点{
HStack{
图像(“配置文件”)
文本(/*文章内容在此处*/)
.lineLimit(2)
}
.上下文菜单{
按钮(“报告”,操作:{})
}
}
}
struct ExpandedView:一些视图{
var body:一些观点{
HStack{
图像(“配置文件”)
文本(/*文章内容在此处*/)
.lineLimit(20)
}
}
}
我的代码库不是这样的,但我想方法是一样的

TL;DR:当用户强制触摸SwiftUI中的视图时,如何显示不同的视图

提前谢谢。

首先我们需要这个-

例如,我的内容视图

struct ContentView: View {

let deleteAction = UIAction(
title: "Remove rating",
image: UIImage(systemName: "delete.left"),
identifier: nil,
    attributes: UIMenuElement.Attributes.destructive, handler: {_ in print("Foo")})

var body: some View {
    NavigationView {
        Text("Hello, World!")
            .contextMenu(PreviewContextMenu(destination: Text("Destination"), actionProvider: { items in
                return UIMenu(title: "My Menu", children: [deleteAction])
            }))
    }
}}

您能找出如何解决这个问题吗?现在我被完全相同的话题困住了。嗨@FlorianPürschel,不幸的是,我仍然没有解决这个问题,我仍然被困住了。据我所知,在Xcode 12 beta 5中还没有这一版本