gpt4 book ai didi

ios - 将应用程序转换为IPAD时如何保持横向或纵向模式?

转载 作者:行者123 更新时间:2023-11-29 05:38:39 25 4
gpt4 key购买 nike

我目前正在将 iphone 应用程序适配到 ipad,并在 viewController 中实现了以下代码,以维护横向 View 之一(其他 View 处于纵向):

override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = self
collectionView.delegate = self

//TODO: - Keep presentationView in landscape

let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}

override func viewDidDisappear(_ animated: Bool) {
let value = UIInterfaceOrientation.portrait.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscapeLeft
}

override var shouldAutorotate: Bool {
return true
}

这对于 iPhone 来说效果很好,但在 iPad 上显示应用程序时不起作用,即 View 旋转并且可以纵向和横向查看。感谢您对我如何调整代码以使其在 iPad 上运行的任何建议。

最佳答案

添加方法 viewWillTransition(to:with:)。通知容器其 View 的大小即将更改。UIKit 在更改呈现的 View Controller View 的大小之前调用此方法。您可以在自己的对象中重写此方法,并使用它来执行与大小更改相关的其他任务。

 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if UIDevice.current.orientation.isLandscape {
print("Landscape")
// Update frame
} else {
print("Portrait")
// Update frame
}
}

enter image description here

关于ios - 将应用程序转换为IPAD时如何保持横向或纵向模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56784837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com