Sto utilizzando storyboard
e autolayout
e imposto i vincoli in IB come IBOutlet
nel controller di visualizzazione corrispondente. Sto leggendo diversi posti per quanto riguarda come aggiornare i vincoli di essere diversi nel ritratto e nel paesaggio, ma non sono ancora sicuro di come dovrei fare questo:Modo corretto per aggiornare i vincoli quando l'orientamento del dispositivo cambia?
- Devo impostare i nuovi vincoli in
-viewWillTransitionToSize:withTransitionCoordinator:
metodo, o nel metodoupdateViewConstraints
? - Quando i nuovi vincoli sono impostati, dovrei chiamare
[self.view setNeedsUpdateConstraints];
olayoutIfNeeded
osetNeedsLayout
? Come devo aggiornare, ad esempio, la costante di un certo vincolo:
self.myConstraint.constant = 30.0
o fare:
[self.view removeConstraint:self.passwordViewHeight];
self.passwordViewHeight = [NSLayoutConstraint constraintWithItem:self.passwordView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:34.0];
[self.view addConstraint:self.passwordViewHeight];
Grazie in anticipo
Grazie. Da quale metodo dovrei chiamarlo? – AppsDev
È possibile effettuare il proprio metodo per chiamarlo da, se è stata impostata una notifica per il cambiamento di orientamento del dispositivo chiamarlo da tale metodo. Se non lo hai già impostato, vorresti farlo con il seguente codice: '[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (yourMethodHere) nome: UIDeviceOrientationDidChangeNotification oggetto: nil];' – Tyler
Sarebbe ' metodo viewWillTransitionToSize' anche un buon posto? – AppsDev