swift iOS 17强制屏幕旋转仅适用于iPad

6tr1vspr  于 12个月前  发布在  Swift
关注(0)|答案(2)|浏览(324)

我已经遵循了谷歌和StackOverFlow上的所有链接,不幸的是,我找不到任何可靠的解决方案专门针对iPad设备
我使用的示例代码来自Kodeco UISplitViewController。你可以从这里下载源代码并添加一个UIButton。
我添加了一个Button,并添加了一个WindowScene RequestGeometryUpdate函数的代码。

所以,请我需要帮助旋转iPad屏幕时按下按钮.我已经附上错误控制台消息时按下按钮.
您的帮助将不胜感激

@IBAction func btnSelector(_ sender: Any) {
    self.rotateToLandsScapeDevice()
}

func rotateToLandsScapeDevice(){
                                
    let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
    if #available(iOS 16.0, *) {
        windowScene?.requestGeometryUpdate(.iOS(interfaceOrientations: .landscapeLeft), errorHandler: { error in
            print("Error", error)
        })
        self.setNeedsUpdateOfSupportedInterfaceOrientations()
    } else {
        // Fallback on earlier versions
        UIDevice.current.setValue(UIInterfaceOrientation.landscapeLeft.rawValue, forKey: "orientation")
        UIView.setAnimationsEnabled(true)
    }

}

字符串

错误控制台消息

Error Domain=UISceneErrorDomain Code=101 "The current windowing mode 
does not allow for programmatic changes to interface orientation." 
UserInfo={NSLocalizedDescription=The current windowing 
mode does not allow for programmatic changes to interface orientation.}

rryofs0p

rryofs0p1#

尝试添加“Supported interface orientations(iPhone)”,并在info.plist文件中将该项目设置为“Portrait(bottom home button)”,就像这样


的数据

vawmfj5a

vawmfj5a2#

您的代码看起来很好。这里似乎Upside DownLandscape之间存在冲突。在Info选项卡中,取消选中iPad方向状态Upside Down可以解决这个问题。


的数据
输出量:


相关问题