如何使堆栈视图或容器视图包装内容?

Posted

技术标签:

【中文标题】如何使堆栈视图或容器视图包装内容?【英文标题】:How do I make a stack view or container view wrap contents? 【发布时间】:2018-01-26 09:42:00 【问题描述】:

这里是从 android 代码库迁移的新手 ios 开发人员。

在 android 中,如果我们想要一个根据其内部内容自动调整高度的容器,我们只需执行以下操作

<LinearLayout
    android:orientation="vertical"
    android:layout_
    android:layout_>
    ...
</LinearLayout>

这是如何通过情节提要在自动布局中实现的?如何使stackviewcontainerview 的宽度或高度为wrap_content

【问题讨论】:

这取决于内容是什么。许多组件可以根据其内容自行调整大小,如果您在组件之间添加约束,那么自动布局可以保持间距。 您需要提供更多信息。例如,如果您将文本字段的行数设置为 0,那么它将根据需要扩展。如果您仅限制其顶部/左侧或底部/右侧,则 UIImageView 可以展开以保存图像。一个按钮永远不会换行超过一行。 【参考方案1】:

您可以在 ios 上使用 UIStackView (Vertcl/Horizo​​ntal) 或 UIScrollview 完成相同的操作

让我在scrollview中解释整个过程

1- 将滚动视图拖到故事板文件/Xib 中的视图控制器

2- 将故事板前导、尾随、顶部、底部约束赋予主视图

3- 在滚动视图中拖动一个 UIView (contentView) 并将它的前导、尾随、顶部、底部约束挂钩到滚动视图

4- control-从 contentView 拖到 mainView 并选择 Equal-widths constraint

在这一步之前,你有一个滚动视图,可以根据其组件的内部大小进行包装

5- 拖动一个 UILabel 并将它的前导、尾随、顶部、底部约束挂钩到 contentView

在运行时更改该标签的内容,滚动视图将根据标签内容进行换行

【讨论】:

以上是关于如何使堆栈视图或容器视图包装内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何在内容增长的同时为 UIView 的阴影边框设置动画

堆栈视图,将空间折叠到内容

iOS 7:自定义容器视图控制器和内容插入

内容视图自动布局

标签的内容正在堆栈视图中裁剪

如何使用 drupal 视图使图像流链接到内容或产品