基于多行UILabel自动调整UIView大小

时间:2017-01-05 11:20:07

标签: ios swift xcode interface-builder

问题: 我有一个多线UILabel的自定义视图(见下图)。

enter image description here

然后将此自定义视图添加到我的故事板中的屏幕上(下图)。

enter image description here

这很有效。问题是多行标签在执行时会动态改变几次,然后蓝色UIView框不适合。这也是屏幕尺寸越来越小的问题。

问题:那么如何根据UILabel的高度让UIView自动调整高度?是否可以通过Interface Builder和Autolayout完成? (不是nececery,但我的其他大部分设置都是通过IB完成的)

如果需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:3)

只要您确保自定义视图中的标签固定到所有(标题标签固定为:Leading,Top ,超级视图和底部到内容标签的尾随;内容标签固定为: superview 和Top to Title标签的前导,底部,尾随)您将 superview 更改它的高度根据内容而定。

另请注意,您的超级视图不需要高度约束,只需将其固定到“前”,“下”和“后”即可。

我的一个应用程序中的视图几乎相同。我要做的是确保根据更新的高度变化是这样的:

customView.setNeedsLayout()
customView.layoutIfNeeded()

您也可以将此代码包装在UIView.animate(withDuration:...)块

干杯!