我以编程方式创建了一个UIView,并向其中添加了NSLayoutConstraint,它可以正常工作,然后将其添加为视图控制器视图的子视图。现在,我需要从超级视图中删除此视图,并在一段时间后再次添加。但是,如果我再次使用添加布局,则布局将无法正常工作self.view addSubview
。如何使布局再次起作用?
在自动布局中添加和删除视图时,您需要注意一些要点。
UIView.h
上课有两种方法
// Allows you to perform layout before the drawing cycle happens.
// -layoutIfNeeded forces layout early
- (void)setNeedsLayout;
- (void)layoutIfNeeded;
根据您的要求使用这些方法。因此,我建议无论何时从视图中删除子视图,如果需要,请更新上级视图的约束。然后调用下面的方法以反映布局更改。
[self.view layoutIfNeeded];
以上方法的大多数情况将解决所有与布局有关的问题。但是,如果有复杂的结构,那一段时间就是指视图的运行时更改行为。
然后在中重写下面的方法,UIViewController
用此方法执行所有与框架相关的更改。
- (void)viewDidLayoutSubviews
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句