2017-01-15 5 views
0

Je sais que cette question a déjà été posée et j'ai essayé de mettre en œuvre la solution suggérée, mais cela ne fonctionne pas pour moi. Peut-être que je me trompe. Avez-vous une idée?Obtenir l'orientation actuelle de l'appareil

Voici mon code:

import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var test: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    test.backgroundColor = UIColor.darkGray 
} 

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

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) // No need for semicolon 

    func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { 
     if UIDevice.current.orientation.isLandscape { 
      test.backgroundColor = UIColor.purple 
     } else { 
      test.backgroundColor = UIColor.blue 
     } 
     } 
    } 
} 
+0

Copie possible de [Comment obtenir l'orientation actuelle du périphérique par programmation sous iOS 6?] (Http://stackoverflow.com/questions/13836578/how-to-get-current-orientation-of-device-programatically- in-ios-6) – TajyMany

+0

J'ai essayé de suivre ces suggestions mais je n'ai pas pu les implémenter dans mon cas. – Roman

Répondre

2

Vous avez des fonctions imbriquées - qui ne fonctionne pas. Changer à ceci:

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) // No need for semicolon 
} 
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { 
    super.viewWillTransition(to: size, with: coordinator) 
    if UIDevice.current.orientation.isLandscape { 
     test.backgroundColor = UIColor.purple 
    } else { 
     test.backgroundColor = UIColor.blue 
    } 
} 

En fait, vous pouvez vous débarrasser de la dérogation pour viewWillLayoutSubviews avec le code que vous avez montré.

1

** à ceux qui ont besoin d'aide supplémentaire, voir les recommandations ci-dessous ** cette fonction sera appelée avant le changement de taille et mais vous le saurez des arguments

3.x Swift +