Używam storyboard
i autolayout
, i ustawienie ograniczeń w IB jako IBOutlet
w odpowiednim kontroler widoku. Czytam kilka postów dotyczących sposobu aktualizacji ograniczeń być różne w portret i krajobraz, ale wciąż nie jestem pewien, w jaki sposób należy zrobić to:Prawidłowy sposób programowej aktualizacji wiązań po zmianie orientacji urządzenia?
- powinienem ustawić nowe ograniczenia w
-viewWillTransitionToSize:withTransitionCoordinator:
metodzie lub w metodzieupdateViewConstraints
? - Kiedy nowe więzy są ustawione, czy powinienem zadzwonić pod numer
[self.view setNeedsUpdateConstraints];
lublayoutIfNeeded
lubsetNeedsLayout
? jaki sposób należy aktualizować, na przykład, stały z pewnym ograniczeniem:
self.myConstraint.constant = 30.0
czyli:
[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];
góry dziękuję
Dziękuję. Z jakiej metody mam to nazwać? – AppsDev
Możesz stworzyć własną metodę wywołania tego, jeśli skonfigurowałeś powiadomienie o zmianie orientacji urządzenia, wywołaj ją z tej metody. Jeśli tego nie ustawiłeś, na pewno będziesz chciał to zrobić za pomocą następującego kodu: '[[NSNotificationCenter defaultCenter] addObserver: selektor własny: @selector (yourMethodHere) name: UIDeviceOrientationDidChangeNotification object: nil];' – Tyler
Będzie " metoda viewWillTransitionToSize' również dobre miejsce? – AppsDev