2016-10-25 54 views
0

我確實知道如何解決的方向,當我編碼swift2,但之後他們改變其功能爲「無功」,新的代碼無法正常工作。可編程設定定向「Swift3」

這裏是支票

class QuizVC: UIViewController{ 

override func viewDidLoad() { 
    super.viewDidLoad() 

    //Quiz scene 
    self.view.backgroundColor = UIColor(red: 240/255, green: 238/255, blue: 226/255, alpha: 1)//sand fron hu 

    let testBtn: UIButton = UIButton()//for orientation test 
    testBtn.setTitle("\" OrientationCheck \"", for: .normal) 
    testBtn.sizeToFit() 
    testBtn.center = self.view.center 
    testBtn.titleLabel?.textColor = UIColor.white 
    testBtn.backgroundColor = UIColor.brown 
    self.view.addSubview(testBtn) 
    //Do any additional setup after loading the view, typically from a nib. 
} 

override var supportedInterfaceOrientations : UIInterfaceOrientationMask {//not working 
    return UIInterfaceOrientationMask.landscape 
} 
override var shouldAutorotate: Bool {//not working 
    return false 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
}} 

當我運行這段代碼,它似乎只是忽略了覆蓋樣本UIViewController類。 視圖自動旋轉,按鈕和標籤不顯示爲橫向。甚至沒有修復。

我也試圖直接把定向值放入變量,但「supportedInterfaceOrientations」是隻得到屬性。 當然,舊代碼被接受爲錯誤,因爲不再有稱爲'supportedInterfaceOrientations()'的函數。只有變量存在。

有沒有人在Swift3中試過這個?

我在iOS10上使用swift3。

+0

的可能的複製[如何在肖像模式鎖定的viewController](http://stackoverflow.com/questions/34489764/how-to-lock-視圖 - 控制 - 在肖像模式) –

回答

0
  1. 刪除shouldAutorotate
  2. 啓用(應用程序設置頁)/普通/設備方向

這應該是正確的工作格局。

0
struct AppUtility { 

    static func lockOrientation(_ orientation: UIInterfaceOrientationMask) { 

    if let delegate = UIApplication.shared.delegate as? AppDelegate { 
     delegate.orientationLock = orientation 
    } 
    } 

    /// OPTIONAL Added method to adjust lock and rotate to the desired orientation 
    static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) { 

    self.lockOrientation(orientation) 

    UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation") 
    } 

} 

在您的項目中添加上述類。

AppUtility.lockOrientation(.landscape,andRotateTo:.portrait)