我尝试使用快捷菜单是SwiftUI,我面临的问题,白色背景出现在我如何才能删除白色背景?
struct PlayerLayerView: View {
var body: some View {
VideoPlayer(player: AVPlayer(url: URL(string: "https://i.imgur.com/2f4ipZX.mp4")!))
.contextMenu {
Button {} label: {
Text("item")
}
Button {
} label: {
Text("item")
}
} preview: {
VideoPlayer(player: AVPlayer(url: URL(string: "https://i.imgur.com/2f4ipZX.mp4")!))
}
}
}
#Preview {
PlayerLayerView()
}
2条答案
按热度按时间hmae6n7t1#
如果上下文菜单附加到覆盖层上,似乎看不到白色背景。麻烦的是,如果覆盖层覆盖了整个区域,那么它也会阻止所有手势,所以它会阻止与视频播放器的交互。
我尝试使用以下由透明区域组成的覆盖层,以允许手势在某些地方通过:
字符串
这是有效的,但它仍然不令人满意,因为你希望能够点击暂停的视频的任何地方,以获得控制显示。
然而,我发现一个类似按钮的小控件工作得很好。它也可以被标记,以明确其用途:
型
的数据
qzlgjiam2#
在SwiftUI中,
contextMenu
修饰符创建了一个带有默认背景的上下文菜单。您需要使用自定义视图和手势的合并来模拟没有背景的上下文菜单。