【问题标题】:Xcode ScrollView doesn't scrollXcode ScrollView 不滚动
【发布时间】:2020-04-13 22:50:36
【问题描述】:

我正在尝试使用最新的 xcode 实现滚动视图。

我的内容“超出范围”,当我运行模拟器时,我无法向下滚动查看我的其余内容。

我的层次结构/约束如下..

您需要对 'contentView' 中的子视图进行限制吗?我的视图控制器中没有额外的代码来操作滚动视图。

使用 Xcode -v 11 和 Swift -v 5

【问题讨论】:

  • 用户是否可以滚动取决于内容视图的大小,而不是单个视图的大小。

标签: ios swift xcode scrollview


【解决方案1】:

请清除 contentView 上的所有约束,然后按以下步骤操作。垂直滚动的 scrollView 需要以下约束:

1) 将您的 ContentView 限制为与 scrollView 各处的距离为零。

2) scrollView 的等高和等宽约束。具有较低优先级的高度限制(例如 400)。

子视图的唯一约束是它们都具有相对于它们上方的视图设置的约束。此外,底部子视图应该具有滚动视图滚动的底部约束。

我的意思是所有 UIView 都应该有相对的垂直约束。例如,如果从上到下,您有三个视图 - A->B->C,则需要以下约束 - 1) 顶部到 A 2) A 到 B 3) B 到 C 最重要的是 4) C 到底部。 如果您在界面生成器中遇到错误,您可以使用 ">=" 而不是 #4 的 "=" 约束。我希望这会有所帮助。

【讨论】:

  • 谢谢!我试过了,滚动仍然没有用。这可能是由于“底部子视图应该有底部约束滚动视图滚动。” - 你能说说你的意思吗 - 或者那个确切的限制是什么?
  • 这对我有用!我的所有子视图都缺少高度限制。一旦我添加了高度并将它们的约束相对于彼此,滚动就起作用了。
【解决方案2】:

在宽度为零的滚动视图中添加一个虚拟视图(UIView)。像这样设置这个视图的约束。

My dummyView Top constraint = scroll view top constraint
My dummyView bottom constraint = scrollView Bottom Constraint
My dummyView leading Constraint = scrollView Leading Constraint
My dummyView Height constraint = give height according to your need (eg 1500)
My dummyView width constraint = 0

现在,只要您想更改滚动视图的高度,只需更改虚拟视图的高度即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多