Ich füge eine Ansicht programmatisch hinzu und verändere die Konstante der Höhenbeschränkung, aber sie stellt die Breite nicht als Bildschirmbreite in der viewDidLoad-Methode ein. Aber die Breite ist perfekt eingestellt, wenn diese Zeile nach einer Verzögerung von 0,2 Sekunden eingefügt wird.Warum muss ich nach einer gewissen Verzögerung die Constraint-Konstante setzen?
Unten ist mein Code
hinzugefügt In ViewDidLoad
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ cAreaView = [[[NSBundle mainBundle] loadNibNamed:@"aView" owner:nil options:nil] objectAtIndex:0]; [_vwComplaintArea addSubview:cAreaView]; [self setConstraintLayout:cAreaView toVw:_vwComplaintArea]; [_firstViewHeightConstraint setConstant:_firstViewHeightConstraint.constant + cAreaView.bounds.size.height]; [_heightForComplaintARe setConstant:cAreaView.bounds.size.height]; });
-(void)setConstraintLayout:(UIView *)vw toVw:(UIView *)toVw { [vw autoSetDimensionsToSize:CGSizeMake(toVw.bounds.size.width, vw.bounds.size.height)]; [vw autoPinEdge:ALEdgeTop toEdge:ALEdgeTop ofView:toVw]; [vw autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:toVw]; }
Kann jemand, der beste Weg vorschlagen Einschränkungen in viewDidLoad programmatisch zu setzen.
Danke.
Try Einschränkung in viewWillAppear einzustellen. – Catoshi
Aber es zeigt eine Animation der sich ändernden Höhe von View. Ich will dort keine Animation. –
Können Sie Ihren Code eingeben, der nicht funktioniert und funktioniert? –