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

时间:2017-05-08 22:48:37

标签: ios xcode

我有一个静态表视图,如下所示:

enter image description here

如何对齐两个灰色标签的前缘(即选择一个类别和“这些是注释”)没有使用它们与视图边距之间的约束?

由于它们位于不同的表格视图单元格中,因此无法在故事板中选择它们以便对它们应用前沿约束。

(如果标签的开头取决于前一个标签的后沿,那么硬编码的值可能无法缩放到不同的设备大小。例如,如果“选择一个类别”的前沿应该是固定大小从“类别”的后缘开始,它的绝对位置可能会因“类别”的字体大小等而有所不同。“这些是注释”的前沿应与“选择类别”的前沿对齐,因此,不能使用硬编码值。)

1 个答案:

答案 0 :(得分:0)

您需要同时提供选择类别这些评论 a leading edge to container margin space。在下面的示例中,我给出了值60。

enter image description here

enter image description here

如果您想同时更改这两个值,可以返回故事板并将值更改为两次(每个约束一次)。但是,更简单的方法是将约束连接到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-05-16

您在问题中编辑并指定要完成此操作"不使用文本字段和视图边距之间的约束。"

由于您的内容是静态的,因此您可以采用以下方法:

  1. 在"类别"之间设置距离约束。和"选择一个类别"。为此制作一个IBOutlet;称之为约束。
  2. 将约束设置为&#34的前导边距;这些是注释"任何值(设定值将在一秒内改变)。为此约束设置IBOutlet;称之为constraintB。
  3. 在viewDidLoad()中,设置constraintB' s常量值等于constraintA加上" category"的长度的UILabel。