使 UITextView 在 UIStackView 中工作

Making a UITextView work inside a UIStackView

我正在尝试将一些 UITextView 添加到 UIStackView,但文本视图未显示。我研究了这个问题,发现的第一个答案是将 UITextViews.enableScrolling 设置为 false。但是,当我这样做时,文本视图变得很长。它离开了视图控制器并且 UIStackView 也变得非常宽并且超出了视图控制器的边缘。此外(这是真的)UIStackView 中的所有其他内容都消失了。我觉得这很奇怪。

顺便说一下,这是一个垂直堆栈视图。我希望我能更好地理解为什么 UIStackView 会这样。任何有关如何使堆栈视图按预期运行的想法都将不胜感激。顺便说一句,UITextView 不可编辑,也不必响应用户交互。下面是故事板和堆栈设置。

此时堆栈视图或其内容没有使用任何约束。我已将项目之间的间距更新为 8,但这没有任何区别 - 我已经尝试了所有数字 0-8 并且 UITextViews 没有出现任何值。否则,我基本上不理会 UIStackView 值。

我没有足够的代表发表评论,但这是我的建议:在堆栈视图中,您可以为堆栈视图中的每个对象显式设置约束。尝试设置所有高度约束和宽度(使用固定到侧面或显式宽度),以便每个对象都知道如何分布。

来自https://developer.apple.com/documentation/uikit/uistackview

For all distributions except the fillEqually distribution, the stack view uses each arranged view’s intrinsicContentSize property when calculating its size along the stack’s axis.