【问题标题】:UIScrollView with Content View带有内容视图的 UIScrollView
【发布时间】:2018-01-21 22:22:15
【问题描述】:

我一直在尝试为用户注册表创建 UIScrollView,但没有成功。我正在使用自动布局,滚动视图中的所有字段都是静态的。由于通常模棱两可的高度问题,我在滚动视图中添加了一个 UIView,将约束设置为滚动视图的边缘并居中对齐。之后,我在情节提要中添加了该内容视图内的所有字段。

内容字段的约束设置如您所料,但是当我到达最低字段并将底部约束设置为内容视图的底部时,一切都会中断。

Xcode 要求我设置某些视图的优先级,当我按原样执行时,内容视图大小保持不变并且视图缩小。

我尝试不放置最后一个底部约束并通过代码调整内容视图的大小,但高度没有按原样调整大小。

我正在寻找一个在故事板和自动布局中执行此操作的好解决方案。

更新:我添加了一个低优先级的底部约束,但内容滚动视图没有展开以显示所有字段。

【问题讨论】:

  • 我已经回答了如何在滚动视图中设置约束。请在此处查看:stackoverflow.com/questions/42701165/…
  • 可以使用表格视图
  • 我想对于这种特殊情况,表格视图会很容易,但我正在寻找使用滚动视图的未来证明解决方案。

标签: ios xcode swift3 uiscrollview


【解决方案1】:
  1. 添加&设置滚动视图(UIScrollView)

  2. 使用子视图添加和设置 ContentView(UIView)

!设置 ContentView Width 等于 View Width

  1. 设置所有子视图约束
  2. View1 应该绑定到 ContentView 的顶部

  3. View4 应该绑定到 ContentView 的底部

  4. 所有子视图(View1、View2、View3、View4 ...)之间必须有高度和距离

附:在你的情况下,如果 iOS > 9.0 你可以用 UIStackView 替换 ContentView

【讨论】:

    【解决方案2】:

    您正在使用自动布局,因此内容视图的大小由约束决定。按照以下步骤提供适当的约束:

    1. 拖动主视图内的滚动视图,并提供与超级视图(主视图)对齐的顶部、底部、前导和尾随约束 每个屏幕截图。

    1. 查看将包含您的内容的视图并拖动到滚动视图中。并提供约束中心 X、中心 Y、顶部、底部、 根据屏幕截图,前导和尾随与滚动视图对齐

    1. 将所有元素放在内容视图中,内容视图是滚动视图的子视图,并提供相对于上面元素的顶部约束 它,使元素之间的空间相等(例如标签,按钮等) (确保为 X 位置提供所需的约束)

    2. 最后一个元素是“注册帐户”按钮,确保您提供相对于国家/地区的顶部约束和相对于的底部约束 superview(内容视图)并更改顶部或底部的优先级 根据屏幕截图进行约束,否则会出错。

    【讨论】:

    • 感谢您提供非常详细的建议,但它实际上不起作用。我做错了什么,也许我应该从头开始...我已将另一张图片附加到我的问题中。
    • 元素的约束可能有问题。因为它是这样工作的,所以我可以滚动查看更多内容。您应该从头开始使用适当的约束。
    猜你喜欢
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2013-06-07
    • 2014-06-22
    • 1970-01-01
    相关资源
    最近更新 更多