我正在尝试为我想要构建的应用程序制作一个非常简单的布局 - 但我似乎正在努力使用ScrollView并通过Storyboard使其工作。基本上我正在尝试构建如下:
我已经使用了几个教程完成了约束 - 但它要么不滚动,要么看起来不对。有什么建议吗?
我收到以下警告:
答案 0 :(得分:3)
在使用约束进行布局时,您必须为UIScrollView提供contentSize。
例如:
您可以将View的宽度设置为等于scrollView,因为这将提供scrollview内容的宽度。然后,提供内容高度,垂直布局红色和黄色视图,并使用它们来提供视图的高度。这意味着您必须为黄色视图提供初始高度,或者您可以使用提供intrinsicContentSize的视图来确定黄色视图高度,这样您就不必手动更改它。
另外我认为你必须删除redview top ==布局指南顶部,并添加redview top ==查看顶部和yellowview底部==查看底部
答案 1 :(得分:1)
设置视图的宽度和高度约束,该约束位于滚动视图内。
如果宽度固定,则添加约束使视图宽度等于Scrollview。
如果高度可变,则设置当前高度并将其优先级更改为750。
例如,在下图中,我设置了视图的宽度和高度。
请注意,如果高度是可变的,则View必须根据视图内容高度知道它的高度
答案 2 :(得分:1)
要让UIScrollView
完美地运作,您需要做的是确保UIScrollView
内的内容视图可以推断其高度始终 。我将UIScrollView
的子视图称为内容视图。话虽这么说,你需要做的是:
UIScrollView
添加前导,尾随,顶部和底部。在您的内容视图中,为UIScrollView
添加一个前导,顶部,尾部和底部。现在Xcode应该抱怨缺少约束。你现在需要做的是在UIViewController
的主视图中添加一个相等的高度和宽度约束,并提供250等于高度约束的优先级。 低优先级相等高度约束将为内容视图提供足够的约束,以便Xcode不会抱怨,并且由于优先级较低,如果内容的大小,它将会中断内部太大,无法完全显示在屏幕上。
注意:保持您的视图层次与原样相同。
答案 3 :(得分:0)
请记住,ScrollView中的视图必须具有明确的大小(使用scrollview布局它不要使其大小明确)。通常,您可以使用根视图或固定值布局视图的宽度。查看高度您还可以使用其中的视图修复值或布局(其中的视图必须具有明确的高度→视图的高度可以计算)。这是我的经验,希望它可以帮助你:))
答案 4 :(得分:0)
设置scrollView内部视图的高度和宽度。如果视图高度是固定的,则设置约束,对于具有可变高度的视图设置该视图的高度,并将其与viewController连接为NSLayoutConstrains并以编程方式更改,并使用
更新scrollView的高度scrollView.contenSize.height = fixedViewHeight + variableViewHeight
也可以更改scrollview的高度。