我有一个名为containerView的包含视图,它是一个UIView。当应用程序启动时,它就是那个视图。在应用程序执行过程中,我想在主容器视图中交换两个“全尺寸”子视图。
我的问题是,无论iPad的方向如何,我如何确保子视图填满整个containerView。 containerView是300宽,但高度根据方向而变化。
我试过了: 从viewDidLoad设置子视图的框架,viewWillAppear,viewDidAppear直接等于containerView框架的一侧,
创建LayoutConstraints,强制子视图符合来自viewDidLoad,viewWillAppear和viewDidAppear的containerView的比例。这里的问题是何时应用这些约束,并且由于视图会定期删除,何时重新应用约束。
我不知道惯用的方法是什么,我希望我的代码可维护和可重用。我接近这个错误的方式吗?是否有其他方法可以确保子视图填满其包含的视图?
答案 0 :(得分:1)
您应该在viewDidLayoutSubviews中设置帧大小。到那时,所有的autolayout废话都已经发生了。