我有一个 ZStack,我将颜色设置为黑色,然后添加一个 VideoPlayer。当我旋转设备时,播放器周围仍然有白色闪烁。我尝试过各种想法、背景颜色、前景色、不透明度,但没有任何效果。我只是希望背景是黑色的,这样它看起来就像一个平滑的旋转。有人有任何建议或修复吗?这是我的代码:
import Foundation
import SwiftUI
import AVKit
struct VideoDetail: View {
var videoIDString: String
var videoThumbURL: String
@State var player = AVPlayer()
var body: some View {
ZStack {
Color.black
.edgesIgnoringSafeArea(.all)
let videoURL: String = videoIDString
VideoPlayer(player: player)
//.frame(height: 200)
.edgesIgnoringSafeArea(.all)
.onAppear {
player = AVPlayer(url: URL(string: videoURL)!)
player.play()
}
.onDisappear {
player.pause()
}
}
.navigationBarHidden(true)
.background(Color.black.edgesIgnoringSafeArea(.all))
}
}
Run Code Online (Sandbox Code Playgroud)
小智 2
我遇到了同样的问题并找到了解决方案:您可以设置托管窗口的根视图控制器视图的背景颜色。您无法在 SwiftUI 中直接访问此内容,因此为了执行此操作,您可以使用此答案中描述的方法。
只需复制withHostingWindow视图扩展,包括HostingWindowFinder某处,并在视图中使用以下代码将背景颜色设置为黑色:
var body: some View {
ZStack {
// ...
}
.withHostingWindow { window in
window?.rootViewController?.view.backgroundColor = UIColor.black
}
}
Run Code Online (Sandbox Code Playgroud)
之后,旋转时的白角应该消失了!
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |