Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:在Interface Builder中使用动态内容大小创建UIScrollView_Ios_Swift_Uiscrollview_Interface Builder - Fatal编程技术网

iOS:在Interface Builder中使用动态内容大小创建UIScrollView

iOS:在Interface Builder中使用动态内容大小创建UIScrollView,ios,swift,uiscrollview,interface-builder,Ios,Swift,Uiscrollview,Interface Builder,对于我的项目,我需要使用一个垂直滚动屏幕内容的UIScrollView。屏幕的内容可能会在屏幕外增长,因为有一个具有动态大小的标签 我在Interface Builder中执行了以下操作: -View --UIScrollView (constraint to superview "View": 0,0,0,0) ---UIView/contentview (constraint to superview "UIScrollView": 0,0,0,0) + equals width to r

对于我的项目,我需要使用一个垂直滚动屏幕内容的
UIScrollView
。屏幕的内容可能会在屏幕外增长,因为有一个具有动态大小的标签

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

-View
--UIScrollView (constraint to superview "View": 0,0,0,0) 
---UIView/contentview (constraint to superview "UIScrollView": 0,0,0,0) + equals width to root view "View" 
----subview .. 
----subview .. etc 
----Label("Some huge dynamic text")  
标签对容器视图的顶边、前缘、后缘和底边具有约束

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


在没有代码的情况下,如何告诉interface builder UIScrollView应该根据内容动态增长,并且只垂直滚动

尝试调用
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()

中,以下操作成功:

“基本上,为了完成这项工作,您在容器视图中放置的所有视图都必须具有高度。某些视图将使用其固有的内容高度,该高度通常由宽度决定。一般来说,您需要为任何不包含文本的视图指定高度和宽度。确实包含文本的视图应至少具有指定的宽度或边距。”


教程应该可以帮助您解决这个问题

您确定标签大小是否正确拉伸了吗?如
sizeToFit
是的,标签位于容器视图的正中央,标签上有sizeToFit(cmd+=),但是标签不可见,滚动视图不可滚动。我尝试调用label.sizeToFit()和scrollview.layoutSubviews()但是,在updateViewConstraints()中,这不会给出任何不同的结果。