如何使编程生成的子视图符合superview(iOS)的界限?

时间:2013-10-03 20:10:34

标签: ios constraints addsubview

我有一个名为containerView的包含视图,它是一个UIView。当应用程序启动时,它就是那个视图。在应用程序执行过程中,我想在主容器视图中交换两个“全尺寸”子视图。

我的问题是,无论iPad的方向如何,我如何确保子视图填满整个containerView。 containerView是300宽,但高度根据方向而变化。

我试过了: 从viewDidLoad设置子视图的框架,viewWillAppear,viewDidAppear直接等于containerView框架的一侧,

创建LayoutConstraints,强制子视图符合来自viewDidLoad,viewWillAppear和viewDidAppear的containerView的比例。这里的问题是何时应用这些约束,并且由于视图会定期删除,何时重新应用约束。

我不知道惯用的方法是什么,我希望我的代码可维护和可重用。我接近这个错误的方式吗?是否有其他方法可以确保子视图填满其包含的视图?

示例代码: https://gist.github.com/Sahasrara/6817105

1 个答案:

答案 0 :(得分:1)

您应该在viewDidLayoutSubviews中设置帧大小。到那时,所有的autolayout废话都已经发生了。