如何在不同的表格视图单元中对齐标签?

如何在不同的表格视图单元中对齐标签?

问题描述:

我有一个静态表视图类似如下:如何在不同的表格视图单元中对齐标签?

enter image description here

我该如何调整的两个灰色标签的前缘(即选择一个类别,“这些都是意见”)没有使用它们和视图边界之间的约束?

由于它们位于不同的表格视图单元格中,因此无法在故事板中选择它们以便向它们应用前沿约束。 (如果标签的开始依赖于前一个标签的后沿,那么硬编码值可能不会缩放到不同的设备大小。例如,如果“选择类别”的前沿应该是固定的大小“,然后其绝对位置可以根据”类别“的字体大小等而变化,”这些是注释“的前沿应该与”选择类别“的前沿对齐, ,不能使用,因此硬编码的值。)

+0

你能解决你的问题吗?看看我的答案,并让我知道它是否有帮助,或者是否需要澄清。谢谢! –

你需要给两个选择一个类别这些注释具有相同价值leading edge to container margin space。在下面的例子中,我给了60

enter image description here

enter image description here

如果你想在同一时间来改变这两个值,你可以回到你的故事板,并同时改变的值60的值为两次(每个约束一次)。然而,一个更简单的方法是将你的限制连接到IBOutlets并存储恒定值在CGFloat的是这样的:

@IBOutlet weak var leadingSpaceConstraint1: NSLayoutConstraint! 
@IBOutlet weak var leadingSpaceConstraint1: NSLayoutConstraint! 
let spaceConstraintConstant: CGFloat = 60 

然后在您的viewDidLoad()你必须:

leadingSpaceConstraint1.constant = spaceConstraintConstant 
leadingSpaceConstraint2.constant = spaceConstraintConstant 

现在,您只需更改spaceConstraintConstant的值即可更改所有单元的约束空间。

更新2017年5月16日

您编辑并在你的问题中指定要做到这一点“而不使用文本字段和视图边缘之间的约束。”

因为你的内容是静态的,你可以按照这个方法:

  1. 设置“类别”和“选择一个类别”之间的距离限制。为此做一个IBOutlet;称它为constraintA。
  2. 将“这些是注释”的前导余量约束设置为任何值(设置值将在一秒内更改)。为此约束设置一个IBOutlet;称它为constraintB。
  3. 在viewDidLoad()中设置constraintB的常量值等于constraintA加上“category”UILabel的长度。
+0

谢谢,但您的答案是在边距和标签的前沿之间使用硬编码值。如果标签的开始取决于前一个标签的后沿,那么硬编码值可能无法缩放到不同的设备大小。例如,如果“选择类别”的前沿应该是“类别”的后沿的固定尺寸,则其绝对位置可以根据“类别”的字体大小等而变化。 “这些是评论”的前沿应与“选择类别”的前沿对齐,因此不能使用硬编码值。 – Gruntcakes

+0

噢,好的。我不认为你在原来的问题中已经说明了这一点,但我看到你编辑了这个问题。由于您的内容是静态的,因此这种方法如何:1)在“类别”和“选择类别”之间设置距离约束。为此做一个IBOutlet;称它为constraintA。 2)将“这些是评论”的前导余量限制为任何值(设置值将在一秒内改变)。为此约束设置一个IBOutlet;称它为constraintB。 3)在viewDidLoad()中设置constraintB的常量值等于constraintA加上“category”uilabel的长度。 –