我正在使用 a.fullScreenCover来呈现VideoPlayer视图。在 iOS 15 及更低版本上,这样做会在左上角显示关闭按钮,如下所示:
但在iOS 16上,似乎并没有出现。
代码如下:
.fullScreenCover(
isPresented: $showVideoSheet,
onDismiss: {
selectedVideo = nil
},
content: {
if let video = selectedVideo {
VideoPlayerView(video: video)
}
}
)
Run Code Online (Sandbox Code Playgroud)
VideoPlayerView在下面:
struct VideoPlayerView: View {
@StateObject var model: VideoPlayerViewModel
let video: VideoModel
init(video: VideoModel) {
self._model = StateObject(wrappedValue: VideoPlayerViewModel(video: video))
self.video = video
}
var body: some View {
if let player = model.player {
VideoPlayer(player: player)
.ignoresSafeArea()
}
}
}
Run Code Online (Sandbox Code Playgroud)
视图模型只加载 AVPlayer 等。
有什么建议么?
您可以制作自己的关闭按钮。
@State var shouldShowVideoPlayer = false
var body: some View {
Text("Example")
.fullScreenCover(
isPresented: $shouldShowVideoPlayer,
onDismiss: {
selectedVideo = nil
},
content: {
ZStack(alignment: .topLeading) {
if let video = selectedVideo {
VideoPlayerView(video: video)
}
Button {
shouldShowVideoPlayer = false
} label: {
Image(systemName: "xmark")
}
.background(Color.white)
.padding(20)
}
}
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |