Ios Xcode情节提要-具有多行标签的多堆栈视图
刚刚开始在Ios Xcode情节提要-具有多行标签的多堆栈视图,ios,xcode,user-interface,storyboard,Ios,Xcode,User Interface,Storyboard,刚刚开始在Xcode中开发iOS应用程序 在故事板中我有八组标签,它们需要放在水平/垂直堆栈视图中。其中之一是多行标签,即行设置为2,文本有一个用Ctrl+Enter插入的换行符。 我想要实现的是(更多的是概念性说明,而不是视觉说明): 堆栈视图1应与屏幕一样宽。 堆栈视图2和3应展开以填充屏幕宽度的一半。两者都应相应扩大。 标签4,6,8应展开以填充堆栈视图的剩余宽度3,而3,5,7的宽度应仅足以容纳文本 我将对最外层的水平堆栈视图使用约束来拥抱边缘 将单行标签添加到堆栈视图中,甚至将这些堆
Xcode
中开发iOS
应用程序
在故事板中
我有八组标签
,它们需要放在水平/垂直堆栈视图中
。其中之一是多行标签
,即行设置为2
,文本有一个用Ctrl+Enter插入的换行符。
我想要实现的是(更多的是概念性说明,而不是视觉说明):
堆栈视图1
应与屏幕一样宽。
堆栈视图
2
和3
应展开以填充屏幕宽度的一半。两者都应相应扩大。
标签
4
,6
,8
应展开以填充堆栈视图的剩余宽度
3
,而3
,5
,7
的宽度应仅足以容纳文本
我将对最外层的水平堆栈视图使用约束来拥抱边缘
将单行标签
添加到堆栈视图
中,甚至将这些堆栈视图
添加到堆栈视图
中也可以按预期工作。
但是,将单行标签
和多行标签
添加到堆栈视图
会导致堆栈视图
变为零
宽度
:
将此垂直堆栈视图
添加到另一个堆栈视图
会使新的堆栈视图
非常宽宽度
:
在没有多行标签的情况下执行相同操作,效果与预期一样。如何使用多行标签
实现预期布局
我尝试在堆栈视图上设置约束,但我尝试过的一切似乎都不起作用
编辑:我在这里找到了解决方案:。我的问题不是有多个标签
(我之前正在搜索),而是多行标签
。在添加到堆栈视图之前,将多行标签
嵌入视图
,解决了这个问题。最外层的堆栈视图需要3个约束,顶部、前导和尾部。它将根据其contentSize推断高度约束
您需要在子堆栈视图上设置水平内容拥抱和水平内容压缩值,以便最外层的堆栈视图知道在空间太小/太大时要压缩/扩展哪个堆栈(除非您选择与填充不同的分发方法,如大小相等)
您需要对具有多个标签的StackView执行相同的操作。您还应该正确设置标签行为(即换行、收缩到合适、数字线等)。您可以分享您的故事板吗?尝试设置约束但没有成功。。。具体到我的情况,顺序是什么?这些是正确的约束条件。是否为每个子视图设置了水平内容拥抱和内容压缩?我不能告诉您在这里使用什么值,因为我不知道标签宽度的目的是什么。使用StackView时,您需要1)固定比例的视图或间距,或2)了解当空间增大或减小时元素将如何收缩和扩展,以便可以相应地设置内容属性。在添加到视图之前,将多行标签嵌入视图中StackView
解决了这个问题。
+---------------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 | | |
| | | +-------+-----------+ | |
| | +-----------------------+ |
+-------------------------+---------------------------+