提问者:小点点

SwiftUI:如何在没有AppDelegate的情况下强制景观


我正在制作应用程序与视频播放器在它和我的整个结构是为只有肖像视图,除了这个视频播放器。我只想为这个视图启用景观旋转。但是我在很多论坛上做了很多文章,每一篇文章都是为了给App Delegate添加一些代码,但是我没有。那我能做什么。


共1个答案

匿名用户

这里有一个演示给你。确保至少点击几次按钮进行测试,这样随机元素至少改变一次方位,然后就可以看到函数起作用了。

import SwiftUI
import UIKit

struct ContentView: View {
    var body: some View {
        Button("Change orientation", action: changeOrientation)
    }
    
    func changeOrientation() {
        // Some orientations here
        let orientations: [UIInterfaceOrientation] = [
            .landscapeLeft,
            .portrait
        ]
        // select a random orientation
        let orientation = orientations.randomElement()!
        // tell the app to change the orientation
        UIDevice.current.setValue(orientation.rawValue, forKey: "orientation")
        print("Changing to", orientation.isPortrait ? "Portrait" : "Landscape")
    }
}