【问题标题】:UIScrollView auto layout not working the width of contentViewUIScrollView 自动布局不适用于 contentView 的宽度
【发布时间】:2015-11-18 07:26:37
【问题描述】:

我在一年半后重新开发 IOS。我真的很难使用 UIScrollView 和自动布局。

我正在开发一个仅在 Iphone 和纵向模式下运行的应用程序。

我的内容视图中有一个简单的表单...

  • 标签
  • 文本字段
  • 文本字段
  • 文本字段
  • 文本字段
  • 按钮
  • 文本字段
  • 查看
    • 图像视图
    • 标签

问题在于 contentView 内容的宽度。尺寸是为标签定义的。我想(并且确实必须这样做)根据屏幕尺寸调整它的大小。

这是我对第一个文本字段的限制:

这是我运行应用程序的模拟器屏幕:

我之前提到的,它似乎是根据标签而不是根据屏幕尺寸来获取尺寸的。如果我为第一个标签创建大小约束,这个大小会改变,但我想根据屏幕动态地获得大小。

我没有写任何代码,我想优先使用自动布局来更好地理解自动布局的概念。

如果有人可以帮助我解决它...我将非常感激。

【问题讨论】:

    标签: ios swift uiscrollview xcode6 autolayout


    【解决方案1】:

    将您的contentView.width 固定为等于scrollview.width

    【讨论】:

    • 当您将 iPad 从横向旋转到纵向时,它似乎不适用于 Xcode 10、iOS 12。
    • 也许在你的 ScrollView 中使用 StackView 也是一种解决方案:stackoverflow.com/a/36783860
    【解决方案2】:

    为滚动视图的内容视图子视图添加一个约束,使其与根级视图的宽度相同。

    【讨论】:

    • 你是说让内容视图具有相同的视图宽度(顶级视图)? A已经成功了! ://
    • 没错。根据定义,顶级视图始终是设备屏幕的宽度,这就是您希望可滚动内容的宽度。
    • 我做到了...但没有用。我的 contentView 具有相同的视图宽度,并且 contentView 内的所有项都具有 15 值的前导和尾随约束。
    • 您可以粘贴内容视图约束的快照吗?
    • 嗯。等宽约束看起来不错。 InterfaceBuilder 是否显示任何布局警告或错误?我看到的唯一问题是 contentView 的高度应该设置为等于根视图的高度,因为那样它就不会滚动。
    猜你喜欢
    • 2015-08-30
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2013-08-23
    • 2018-12-03
    相关资源
    最近更新 更多