可变宽度标签列的iOS自动布局 目标
我试图通过自动布局约束实现以下设计: 我试过的 中间的标签很简单(水平居中查看) 左边和右边的标签不是那么简单。简单地添加20的前导和尾随空间约束并不适用于所有内容。此外,下面的详细信息标签可以更宽 我考虑过给右标签和左标签以>=20的前导和尾随空间限制,并使文本居中 问题 如何在以下情况下实现3个标签的动态内容列布局:可变宽度标签列的iOS自动布局 目标,ios,uilabel,autolayout,nslayoutconstraint,Ios,Uilabel,Autolayout,Nslayoutconstraint,我试图通过自动布局约束实现以下设计: 我试过的 中间的标签很简单(水平居中查看) 左边和右边的标签不是那么简单。简单地添加20的前导和尾随空间约束并不适用于所有内容。此外,下面的详细信息标签可以更宽 我考虑过给右标签和左标签以>=20的前导和尾随空间限制,并使文本居中 问题 如何在以下情况下实现3个标签的动态内容列布局: 确保它们之间至少有20磅的填充物 确保左侧和右侧标签的插入超过20分,以获得较小的内容 您可以将大百分比标签和相应的细节标签包装到包装器视图中,并使包装器视图的大小与其内容
- 确保它们之间至少有20磅的填充物
- 确保左侧和右侧标签的插入超过20分,以获得较小的内容
-.-.-.-. -.-.-. -.-.-.-.
- (20) -| 100% | - (20) - |100%| - (20) - | 100% | - (20) -
|detail| | d | |detail|
-.-.-.-. -.-.-. -.-.-.-.
这只是解决方案之一,简单明了。有几种方法可以解决这个问题
有一个在中创建等间距视图的示例。该方法是在需要间隔的视图(以及边上)之间创建不可见的“间隔”视图,并使用“自动布局”设置间隔宽度。垫片的宽度(或垂直间隔视图的高度)设置为相等。从PG: 按比例缩放空间视图
1.创建可见视图。
2.创建与可见视图数量加上一个相等的间隔视图。
3.交替放置视图,从间隔视图开始。
要分隔两个可见视图,请按以下模式放置所有视图,从屏幕左侧开始向右移动:
spacer1 |视图1 | spacer2 |视图2 | spacer3.
4.约束间隔视图,使其长度彼此相等。
5.创建从第一个间隔视图到容器视图的前导约束。
6.创建从最后一个间隔视图到容器视图的尾部约束。
7.在间隔视图和可见视图之间创建约束
我通过为分隔标签的约束创建出口解决了这个问题(在我的例子中,边距是固定的) 我做到了:
let constant = (constraint1to2.constant + constraint2to3.constant)/2
constraint1to2.constant = constant
constraint2to3.constant = constant
谢谢你的推荐。我仍在加快自动布局的速度。我试试这个。为了清楚起见,第二个解决方案是什么?我没有想到乘数。我可以看看。第二个解决方案是乘数。我将重新表述答案。有道理。不过,我希望避免使用包装器视图。试着学习如何用正确的方法去做。是的,我完全同意,所以我建议只有当一个人想不出更好的方法或者需要更快的方法时才使用我的解决方案。