这周我在开发一个 App,客户想要此 App 在某些情况下锁定竖屏,某些情况下锁定横屏。幸运的是,我已经在自动布局下创建了所有的视图,因此它们已经支持所需的约束,我仅需要锁定视图旋转。
旋转 API 属于 UIKit 中经常被弃用的内容,因此当我开始旋转工作时,不得不查一下。我还想说,弃用和替换相关的 API 太麻烦了。经过一个小时左右的研究和两个小时的实践,我终于整出了两部分。(译者注:=W=,我当时也搞了好久)
Info.plist
文件中所有你想要支持的旋转方向。
Swift 1.2
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
Swift 2.0
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
确保选中你想要锁定的方向是横屏还是竖屏。
这可能是我最近看到过的最乱的接口改动,并且我花了好长时间才意识到我在 Swift 1.2 中犯下的错误。(那个 Int cast 太丑了)
Sample Code (Swift 1.2 Project)
我刚刚意识到,我标题有点词不达意。
好吧,下不为例。
本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问http://swift.gg。