iOS:在Interface Builder中使用动态contentSize创建UIScrollView

时间:2016-02-26 16:37:04

标签: ios swift uiscrollview interface-builder

对于我的项目,我需要使用$client = new \SoapClient($host."index.php/api/v2_soap/?wsdl"); 垂直滚动浏览屏幕的内容。由于标签具有动态尺寸,因此屏幕内容可能会在屏幕外生长。

我在Interface Builder中执行了以下操作:

UIScrollView

标签对容器视图顶部,前端,尾部和底部边缘有约束。

但是,当我运行应用程序时,它不会动态设置UIScrollView的contentSize。 我不想使用其他Stack Overflow帖子中创建运行时变量的技巧,或者视图在屏幕外变大的技巧。

如何告诉界面构建器没有代码,UIScrollView应根据内容动态增长并仅垂直滚动?

2 个答案:

答案 0 :(得分:0)

尝试拨打label.sizeToFit()scrollView.layoutSubviews()

如果这不起作用,请尝试向标签添加高度约束,并手动将其常量设置为您需要的大小:

let expectedSize = label.sizeThatFits(CGSize(width: scrollView.frame.size.width, height: CGFloat.max))
labelHeightConstraint.constant = expectedSize.height
self.view.layoutSubviews()

在控制器的updateViewConstraints()

答案 1 :(得分:0)

以下是诀窍:

“基本上,为了实现这一点,您放在容器视图中的所有视图都必须具有高度。某些视图将使用其内部内容高度,这通常由宽度决定。一般规则,您需要为任何不包含文本的视图指定高度和宽度。包含文本的视图应至少具有指定的宽度或边距。“

This教程可以帮助你