滚动视图不在自动布局中滚动子视图

Posted

技术标签:

【中文标题】滚动视图不在自动布局中滚动子视图【英文标题】:Scrollview not scrolling subview in autolayout 【发布时间】:2015-03-18 22:57:38 【问题描述】:

我有一个带有滚动视图的视图控制器。

滚动视图有一个子视图(内容视图),这是我从另一个 VC 复制的视图。我无法让滚动条工作,我已经尝试过:

针对容器设置滚动视图的约束(固定顶部/底部/侧面 =0) 针对滚动视图设置内容视图的水平和垂直间距也不起作用 将内容视图设置为超级视图前导/尾随空间到容器边距,顶部空间到顶部布局指南和底部空间到底部布局指南 - 仍然没有滚动

还尝试在 viewdidload 中设置滚动视图大小:

scrollView.scrollEnabled = true; scrollView.contentSize = contentView.frame.size;

而且没有滚动。

我可能在这里遗漏了一些基本的东西,但是虽然已经尝试了许多在线教程,但我无法使用滚动视图来解决问题。

拖动内容视图到滚动视图时弹出

【问题讨论】:

【参考方案1】:

您的内容视图未嵌入到滚动视图中。

【讨论】:

好的,那么如何嵌入?尝试将视图层次结构窗口中的内容视图拖动到滚动视图,但弹出窗口中只出现垂直/水平间距选项 您应该能够将内容视图拖到侧边栏中的滚动视图中。不要使用任何键盘修饰键。 不要按任何键盘按钮。看起来您使用的是 ctrl 按钮。 只需在笔记本电脑上使用鼠标垫,右键单击并拖动 好吧,然后左键单击并拖动:)。【参考方案2】:

滚动UIScrollView您需要以下步骤

    UIScrollViewSuperView 固定在上、左、下、右四个侧面

    在 ScrollView 中添加一个 contentView (UIView) 并使用 UIScrollView 将其固定,所有四个边的边距为 0。还要添加等宽约束。

    将子视图添加到 contentView 确保所有视图都从顶部底部约束固定并为子视图添加高度约束。

无需在代码中设置任何属性或内容大小。

【讨论】:

以上是关于滚动视图不在自动布局中滚动子视图的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局在 UIScrollView 中使用浮动视图滚动犹豫

带有自动布局的滚动视图表单

页面应用程序 + 自动布局 + 子视图在滚动时缩放

ScrollView 自动布局内的 TableViews

以编程方式布局 UIScrollView,并为其子视图添加了自动布局,但它不滚动

带有约束的滚动视图自动布局问题 xcode 8