【发布时间】:2018-05-09 04:08:48
【问题描述】:
刚开始在Xcode 中开发iOS 应用程序。
在Storyboard 中,我有八组Labels,需要放在水平/垂直Stack Views 中。其中之一是多行Label,即设置为2 的行和文本插入了一个换行符,使用Ctrl+Enter。
我想要实现的是(更多的是概念插图而不是视觉插图):
+---------------Stack View+1-(100%)-------------------+
| +--Stack View 2-(50%)-+ | +---Stack View 3-(50%)--+ |
| |Label 1 | | | +--Stack+View 4-----+ | |
| +---------------------+ | | |Label 3|Label 4 | | |
| |Label 2 | | | +-------+-----------+ | |
| |Multiline | | +-----------------------+ |
| +---------------------+ | | +--Stack+View 5-----+ | |
| | | |Label 5|Label 6 | | |
| | | +-------+-----------+ | |
| | +-----------------------+ |
| | | +--Stack+View 6-----+ | |
| | | |Label 7|Label 8 | | |
| | | +-------+-----------+ | |
| | +-----------------------+ |
+-------------------------+---------------------------+
Stack View 1 应该与屏幕一样宽。
Stack Views 2 和 3 应该扩大到屏幕宽度的一半。两者都应相应扩展。
Labels 4, 6, 8 应该扩展以填充 Stack View 3 的剩余宽度,而 3, 5, 7 应该只有足够宽以适合文本.
我将使用对最外层水平Stack View 的约束来拥抱边缘。
将单行 Labels 添加到 Stack Views 甚至将这些 Stack Views 添加到 Stack View 都可以按预期工作。
但是,将单行 Label 和多行 Label 添加到 Stack View 会导致 Stack View 变为 zero width:
将这个垂直的Stack View 添加到另一个Stack View 使得新的Stack View 具有极宽的width:
在没有多行 Label 的情况下执行相同操作可以按预期工作。如何使用多行 Label 实现我的预期布局?
我尝试在 Stack Views 上设置约束,但我尝试过的任何方法似乎都不起作用。
编辑:我在这里找到了解决方案:Multiline label in UIStackView。我的问题不是有多个Labels(我之前正在搜索),而是多行Label。在添加到 Stack View 之前将多行 Label 嵌入到 View 中解决了这个问题。
【问题讨论】:
-
你能分享你的故事板吗?
标签: ios xcode user-interface storyboard