使用可更改的框架在视图上添加子视图

时间:2016-03-01 21:47:35

标签: ios swift uiview uiviewcontroller xib

在我的应用程序中,我正在开发一项功能,在按下按钮时,靠近屏幕顶部的视图向下延伸以填充屏幕(边缘周围有间隙)。该视图最初大约有40个点,当延伸时它从视图底部延伸到20个点。

我正在尝试找出在此视图中处理UI的最佳方式,因为它的小表单只包含一个按钮和一个imageview,但是在展开时它还包含标签,滚动视图和其他图像视图。

我是否应该使用xib,然后我可以将框架设置为与展开视图相同或某种容器视图?

如果我可以避免它,我想避免以编程方式创建布局。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

虽然有许多方法可以实现视觉要求,但无论您使用的是故事板还是.xib文件,Autolayout都可能是管理您所需内容的最简单方法。虽然您可以通过这种方式定义布局,但可能需要在运行时修改它。

例如,您可以为视图创建两个约束:

1)为视图添加一个高度约束,其值大于或等于40。

2)从视图底部向视图控制器的底部布局指南添加垂直间距约束。将此约束设为IBOutlet,以便稍后可以在代码中对其进行修改。

使用Autolayout,您需要确保布局对于视图的大小和位置不明确,因此您还应该为视图的顶部,左侧和右侧相对位置创建约束。

当适合扩展视图时,实现一个函数或IBAction,它将修改约束,使其.constant值为20。