使用Swift

时间:2015-08-21 06:14:47

标签: ios iphone xcode swift

我正在开发一款应用,并打算在其中使用颠倒的方向。我使用了以下代码

override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
        if toInterfaceOrientation == UIInterfaceOrientation.PortraitUpsideDown {
            self.shouldAutorotate()
        }
    }

但它不起作用。任何帮助!???

6 个答案:

答案 0 :(得分:2)

尝试将其放在plist文件

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>

并在部署信息上的常规标签上验证您的目标,以便:

enter image description here

另一方面,您使用的是导航控制器还是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)检查部署信息并选择所选的设备方向