Ich verwende storyboard
und autolayout
, und die Einschränkungen in IB als IBOutlet
in der entsprechenden Ansicht Controller festlegen. Ich lese einige Beiträge darüber, wie die Einschränkungen zu aktualisieren Porträt, anders zu sein in und in der Landschaft, aber ich bin noch nicht sicher, wie soll ich dies tun:Korrekte Methode zum programmatischen Aktualisieren von Integritätsbedingungen bei Änderungen der Geräteausrichtung?
- Soll ich die neuen Einschränkungen in
-viewWillTransitionToSize:withTransitionCoordinator:
Verfahren eingestellt, oder inupdateViewConstraints
Methode? - Wenn die neuen Einschränkungen festgelegt sind, sollte ich
[self.view setNeedsUpdateConstraints];
oderlayoutIfNeeded
odersetNeedsLayout
aufrufen? Wie soll ich aktualisieren, zum Beispiel die Konstante einer gewissen Einschränkung:
self.myConstraint.constant = 30.0
oder tun:
[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];
Vielen Dank im Voraus
Vielen Dank. Von welcher Methode soll ich das nennen? – AppsDev
Sie können Ihre eigene Methode erstellen, von der aus Sie anrufen, wenn Sie eine Benachrichtigung für die Änderung der Geräteausrichtung eingerichtet haben, rufen Sie sie von dieser Methode auf. Wenn Sie das nicht eingerichtet haben, werden Sie dies auf jeden Fall mit dem folgenden Code tun wollen: '[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (yourMethodHere) name: UIDeviceOrientationDidChangeNotification Objekt: nil];' – Tyler
Wäre '' viewWillTransitionToSize' Methode auch ein guter Ort? – AppsDev