【问题标题】:Unable to see all textfields on the content view, which is on top of scrollview无法在滚动视图顶部的内容视图上查看所有文本字段
【发布时间】:2017-01-13 14:29:33
【问题描述】:

我在 contentView 上有 25 个文本字段,它位于滚动视图的顶部。由于有很多文本字段,我已将 ViewController 模拟大小更改为 Freeform,并将高度设置为 1000。

我已经为滚动视图、内容视图和文本字段添加了约束。我能够看到每个约束都得到满足

我已将 contentview 设置为与 View 相等的宽度和相等的高度

当我在设备中运行它时,我只能在内容视图中看到 15 个文本字段。我已将最后一个文本字段约束设置为容器的底部空间。

我尝试将容器的底部空间设置为标准值,但遇到同样的问题

如果我删除最后一个文本字段的底部约束,那么我可以看到所有文本字段但无法向下滚动。我尝试了很多但无法弄清楚问题所在。由于我对约束和自动布局不熟悉,所以我无法弄清楚。如果我有 10-15 个文本字段,那么一切正常,但如果文本字段超过 15 个,那么我将面临这个问题。我想我在用 ViewController 的大小或底部约束弄乱了一些东西。我准备好遵循任何其他满足我要求的方法。任何帮助将不胜感激。

【问题讨论】:

    标签: ios xcode autolayout


    【解决方案1】:

    在您的UIViewControllerviewDiDAppear尝试设置您的UIScrollView.contentInset = .zero

    我个人更喜欢将内容视图的前导、顶部、尾随和底部空间设置为滚动视图(设置为 0),而不是 equalWidths 和 equalHeights。

    那么最好确保文本字段有明确的高度设置。

    【讨论】:

      【解决方案2】:

      如何在UIScrollView中给予约束

      ScrollView 约束

      1. 顶部、底部、前导、尾随 = 0 到超级视图。

      ContentView 约束

      1. 顶部、底部、前导、尾随 = 0 到 scrollView
      2. ScrollView 的父视图等宽

      文本字段约束

      -对于 textField1

      1. 前导、尾随、顶部(根据您的要求设置约束值)到ContentView
      2. 身高

      -对于 textField2 到 textField(n-1)

      1. 前导、尾随、顶部(根据您的要求设置约束值)到Upper textField
      2. 身高

      -for textField2 to textField(n)

      1. 前导、尾随、顶部(根据您的要求设置约束值)到Upper textField
      2. 身高
      3. 底部到ContentView

      重要:

      由于UIScrollView 的高度取决于contentView 的高度,因为我们给出了约束contentView w.r.t。到UIScrollViewcontentView 的高度由其内部内容计算,因为每个组件的约束都有高度,第一个组件的顶部约束到 contentView,最后一个视图的底部约束到 contentView

      注意: 永远不要给UIScrollViewcontentView 提供静态高度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 2012-08-21
        • 2014-03-20
        • 1970-01-01
        • 2011-08-30
        • 2014-04-20
        相关资源
        最近更新 更多