我正在开发一款应用,并打算在其中使用颠倒的方向。我使用了以下代码
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
if toInterfaceOrientation == UIInterfaceOrientation.PortraitUpsideDown {
self.shouldAutorotate()
}
}
但它不起作用。任何帮助!???
答案 0 :(得分:2)
尝试将其放在plist文件
上<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
并在部署信息上的常规标签上验证您的目标,以便:
另一方面,您使用的是导航控制器还是Tab控制器?如果是这样,您将需要子类化导航或选项卡控制器并添加以下两种方法:
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.All
}
答案 1 :(得分:1)
设备方向(常规选项卡):
[x]肖像
[x]颠倒
[]左侧风景
[]风景正确
Swift 2
// UINavigationController+UpsideDownOrientation.swift
import UIKit
extension UINavigationController {
public override func shouldAutorotate() -> Bool {
return true
}
public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return [.Portrait, .PortraitUpsideDown]
}
}
答案 2 :(得分:0)
在视图控制器代码中添加它。
override func supportedInterfaceOrientations() -> Int{
return Int(UIInterfaceOrientationMask.All.rawValue)
}
答案 3 :(得分:0)
在Class或ViewController上添加此代码。
override func shouldAutorotate() -> Bool {
return false
}
override func supportedInterfaceOrientations() -> Int {
return UIInterfaceOrientation.Portrait.rawValue
}
答案 4 :(得分:0)
将这两个函数添加到要设置方向的viewcontrollers中。适用于Swift 3.0,因为我现在正在使用它。
在您的项目上,在常规下,选择&#34;设备方向&#34;您希望应用程序支持。然后转到.plist并编辑支持的界面方向(iPad)以获得您想要支持的方向。
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscapeRight // or .landscapeLeft or .portrait or .portraitUpsideDown which ever orientation you want the viewcontroller to be
}
答案 5 :(得分:0)
1)检查info.plist以获取支持的界面方向,并根据需要进行设置
2)检查部署信息并选择所选的设备方向