【发布时间】:2019-05-15 14:37:43
【问题描述】:
我有一个垂直的UIStackView,其顶部、前缘和后缘都固定在父视图上,其高度由其子视图确定。
其排列的子视图由 5 个水平的UIStackViews 组成,每个子视图都有 3 个 UILabels 作为排列的子视图。
对于每个水平的UIStackView,第一个UILabel的文本是标题,第二个UILabel的文本是冒号,第三个UILabel的文本是信息,如图所示下图
所有UILabels 都有numberOfLines = 0,因此它们是多行的。
我想使用自动布局创建约束,以便满足以下条件-
- 冒号
UILabels 都是垂直对齐的 - 信息
UILabels 的宽度至少是父视图的 20% - info
UILabels 的宽度最多为父视图的 60% - 如果所有 info
UILabels 的宽度小于父视图的 60%(参见 3),则它必须缩小到最宽 infoUILabel的宽度。
我了解如何使用自动布局来创建满足前 3 个条件的约束。
但是,我不明白如何创建约束来满足第四个条件。我尝试增加“内容拥抱优先级”,但它会将标签缩小到父视图的 20%(参见 2)。
谁能指出如何实现这种布局?
【问题讨论】:
-
您的“标题”标签也设置为
numberOfLines = 0?意思是,他们可能还需要自动换行? -
而且...你总是会有 5 个“行”吗?还是会是动态的?
-
是的,标题标签也可以自动换行。总会有 5 行。
-
不清楚,但我假设您希望结果是对齐的“列”,而不是每个“行”排列?换句话说,您想要 top 图像,而不是 bottom 图像:imgur.com/a/Jl9TC0o ?跨度>
-
@DonMag 是的,你是对的。我想要最上面的图片。
标签: ios autolayout uistackview