在不同的静态UITableViewCells中创建视图之间的约束

时间:2013-09-05 20:00:50

标签: ios uitableview autolayout

我在故事板中有一些静态的UITableViewCells:

Static Cells in a UITableView

我希望底部四个单元格右侧的文本字段向左对齐。密码和某些密码之间已存在约束,因为密码是屏幕上最长的标签。我希望其他文本字段与那个文本字段一致。

我似乎无法多选文本字段来添加对齐约束,也无法从文本字段拖到另一个并获得一组约束选项。

有没有办法在Xcode中执行此操作,还是唯一的方法是为这些静态单元创建插座并在代码中添加约束?

2 个答案:

答案 0 :(得分:0)

我只是尝试将所有标签对齐,将所有文本字段手动对齐,然后应用以下约束。

  • 每个标签与文本字段之间的水平空间限制。
  • 删除了每个文本字段的常量宽度约束。

因此文本字段左对齐,宽度灵活 并且标签与右边对齐,固定为。

对我来说效果很好。

答案 1 :(得分:0)

我刚刚在代码中解决了这个问题。只需给每个标签除最长标签以外的固定宽度约束。然后在视图控制器中输出这些约束的出口。然后在viewDidLayoutSubviews中,将这些约束的宽度设置为最长标签的框架宽度,如:

nameLabelWidthConstraint.constant = passwordLabel.frame.size.width
locationLabelWidthConstraint.constant = passwordLabel.frame.size.width
emailLabelWidthConstraint.constant = passwordLabel.frame.size.width

您可能想要对齐标签,取决于您当然想要的内容。

如果标签的名称是动态的(例如支持更多语言时),那么您可能还需要检查代码中哪个标签最长。在这种情况下,您不想在故事板中设置with约束。相反,您需要首先检查每个标签的框架宽度。找到最大数字,然后将宽度约束添加到代码中具有该宽度的每个标签。