使用动态高度将视图固定到底部
Posted
技术标签:
【中文标题】使用动态高度将视图固定到底部【英文标题】:Pinning a view to the bottom with dynamic height 【发布时间】:2016-09-20 05:09:56 【问题描述】:我有一个 UILabel,它可以有可变数量的行数和高度。我想将这个标签固定到我的视图底部,如下所示:
如果文本强制标签展开,我希望标签与视图底部保持相同的高度(大约显示一行文本),但允许标签向下展开(它在滚动视图中)。我当然可以将 UILabel 固定在屏幕顶部,但是根据屏幕大小,这会产生不同的结果。我怎样才能达到这个结果? IB可以吗?还是我必须以编程方式进行?
【问题讨论】:
显示您添加到滚动视图的视图层次结构和约束。 只需将其固定在底部,左右。给它一个 numberOfRows 为 0 并保留高度。这应该工作 @kex 里面有什么?请向我们展示视图层次结构。 @Mr.UB 我是的。刚刚接受了下面的答案。谢谢 【参考方案1】:您可以将标签固定到顶部(将滚动的内容视图的顶部),然后为将标签固定到顶部的约束创建和输出(或者只是以编程方式创建它以获得引用)
一旦你有了参考,只需在 viewDidLoad 中将约束的常量设置为屏幕的高度。
constraint.constant = UIScreen.mainScreen.bounds.height - heightFromBottom
【讨论】:
【参考方案2】:我通过以下步骤实现了这一点:
获取滚动视图并将约束(顶部、底部、尾部、前导)= 0 添加到 Superview。
在 Scroll 内添加一个 UIView 并向 Scroll View 添加约束(顶部、底部、尾随、前导)= 0。
设置 UIView 的高度和宽度约束等于 Superview(即 Main View、self.view)。
选择 UIView 的高度约束并将其优先级设置为750
。
在 UIView 的底部添加一个 Label 并将其约束(底部、顶部、尾随和前导)设置到 UIView。
设置标签greater than equal to
的高度。 (您已经这样做了,虽然我们不需要这样做)。
最后一步:选择Label的顶部约束并将其优先级设置为250
。
Link to the project
【讨论】:
以上是关于使用动态高度将视图固定到底部的主要内容,如果未能解决你的问题,请参考以下文章