我已经阅读了很多关于这个主题的内容,但我对目前的解决方案并不满意。
我正在创建一个主要处于纵向模式的捕捉应用程序,但我想强制相机视图处于横向状态。
我一直在使用这些简单的函数强制在捕获视图控制器中的viewWillAppear中更改方向。
static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
if let delegate = UIApplication.shared.delegate as? AppDelegate {
delegate.orientationLock = orientation
}
}
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
self.lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
}
一个问题是视图控制器最初仍然可以纵向加载,然后将自身旋转到横向。
如何强制它以横向显示以便它永远不会以纵向显示?
将来,我可能也喜欢使用肖像捕捉,其行为与默认的相机应用程序非常相似(图标旋转但捕捉按钮和预览保持不变。照片以正确的方向出现)。我想在故事板中设计这个界面,这样我就可以通过改变设备方向在故事板中看到纵向和横向视图。
如何在故事板中使相机屏幕处理正版设备方向更改?我发现没有干净的解决方案。