Ich habe Probleme mit etwas, ich wäre dankbar, wenn Sie mir einen Rat geben könnten.Wie animiere ich Constraint-Änderungen, wenn Constraints programmatisch mit VFL erstellt werden?
Grundsätzlich habe ich einige Einschränkungen mit Visual Format Language erstellt und macht meine Basis dynamischer. Ich habe meine Ansichten im Storyboard nicht berührt.
Sie können den roten Bereich als navigationBar betrachten.
In der Beispielansicht sieht wie aus;
Mein Problem ist; Ich möchte meine TopView auf einigen ViewController verstecken.
Zuerst habe ich eine Eigenschaft erstellt;
@property (strong, nonatomic) NSLayoutConstraint *constraintTabbarHeight;
Aber ich merkte, ich nicht meine NSLayoutConstraint Eigenschaft mit VFL einstellen könnte. Weil VFL ein Array von Beschränkungen erstellt.
Also das ist meine erste Frage; Gibt es trotzdem meine VFL Einschränkung mit NSLayoutConstraint Eigenschaft zu halten?
Wie dem auch sei, so habe ich beschlossen, meine Höhenbeschränkung mit constraintWithItem Methode zu erstellen.
self.constraintTabbarHeight = [NSLayoutConstraint constraintWithItem:self.tabbarContainerView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:95];
Zweitens suche ich auf stackoverflow und ich habe eine Methode gefunden. Ich kann diese Methode von jedem beliebigen ViewController aus aufrufen.
- (void)updateTabbarConstraintWith:(int) heightValue{
self.constraintTabbarHeight.constant = heighValue;
[UIView animateWithDuration:0.3
animations:^{
[self.view layoutIfNeeded];
}];
}
Wenn ich self.constraintTabbarHeight.constant = 0 gesetzt, alles ist in Ordnung. Mein TopView (redArea) verschwindet, aber PlaceholderView ist immer noch auf derselben Position.
Ich dachte [Self.view layoutIfNeeded] wird meine Platzhalteransicht aktualisieren und es füllt meinen Bildschirm.
Es sieht so aus;
Wie mache ich es richtig?
Vielen Dank für Ihre Antworten.