使用动态高度将视图固定到底部

时间:2016-09-20 05:09:57

标签: ios swift uiview

我有一个UILabel可以有可变数量的行,因此有高度。我想将这个标签固定在我的视图的底部,如下所示:

enter image description here

如果文本强制标签展开,我希望标签从视图底部保持相同的高度(大约显示一行​​文本),但允许标签向下扩展(它在滚动视图中)。我当然可以将UILabel固定在屏幕的顶部,但是根据屏幕尺寸的不同会产生不同的结果。我怎样才能达到这个效果?是否可以使用IB或我是否必须以编程方式执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以将标签固定到顶部(将滚动的内容视图的顶部),然后创建并插入将标签固定到顶部的约束(或者只是以编程方式创建它以获得参考)

获得引用后,只需将约束的常量设置为viewDidLoad中屏幕的高度。

constraint.constant = UIScreen.mainScreen.bounds.height - heightFromBottom

答案 1 :(得分:0)

我使用以下步骤实现了这一目标:

  1. 进行滚动视图并向超级视图添加约束(顶部,底部,尾部,前导)= 0。

  2. 在Scroll中添加UIView并将约束(top,bottom,trailing,leading)= 0添加到滚动视图。

  3. 设置UIView的高度和宽度约束等于Superview(即主视图,self.view)。

  4. Height and Width Constraint of the UIView

    1. 选择UIView的高度约束,并将其优先级设置为750

      UIView Priority to <code>750</code>

    2. 将标签添加到UIView的底部,并将其约束(bottom,top,trailing和leading)设置为UIView。

    3. 设置标签greater than equal to的高度。 (你已经完成了这个,虽然我们不需要这个)。

    4. 最后一步:选择标签的顶部约束并将其优先级设置为250

    5. Label priority to <code>250</code>

      Link to the project