Je suis nouveau dans la programmationContraintes flexibles de vue la position lorsque la vue est chargé
J'ai 2 subviews dans ma principale RootView
(Magenta) - qui sont AppView
(orange) et MenuBarView
(Noir) - http://imgur.com/ySgEP9k
Je veux la barre de menu pour être dans une certaine position, même quand il est tourné alors je l'ai fait quelque chose comme ceci:
Swift 3
class ViewController: UIViewController {
var MenuBarPosition = "Left"
func RefreshConstraints() {
switch MenuBarPosition {
case "Right":
self.ApplyMenuBarRight()
(...)
default:
print("MenuBarPositionError")
}
func ApplyMenuBarRight() {
RootView.removeConstraints(ApplyMenuBarOnRightRemoveConstraints) // This is an array
RootView.addConstraints(ApplyMenuBarOnRightConstraints) // Also an Array
}
(...)
}
Lorsque l'écran est tourné, j'ai mis
Swift 3
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
RefreshConstraints()
}
pour appliquer les modifications. Cela fonctionne bien. Par conséquent, je sais que mes contraintes et le code pour les appliquer sont corrects. Cependant, quand je l'ai essayé de faire:
Swift 3
override func viewDidLoad() {
RootView.translatesAutoresizingMaskIntoConstraints = false
MenuBarView.translatesAutoresizingMaskIntoConstraints = false
AppView.translatesAutoresizingMaskIntoConstraints = false
super.viewDidLoad()
RefreshConstraints()
}
les contraintes de sous-vue ne sont pas appliquées lorsque l'application est initialement chargé et affiche un écran magenta (c.-à-rootView
) - http://imgur.com/Koqliey
Qu'est-ce que j'ai manqué - pour cela ne fonctionne pas correctement lorsque l'application est lancée? Toute aide est appréciée, merci: D