我在情节提要中有一些静态 UITableViewCells:
我希望底部四个单元格右侧的文本字段左对齐。Password 和 Some Password 之间已经存在约束,因为 Password 是屏幕上最长的标签。我希望其他文本字段与该文本字段对齐。
我似乎无法多选文本字段来添加对齐约束,也无法从文本字段拖动到另一个文本字段并获得一组约束选择。
有没有办法在 Xcode 中做到这一点,或者是唯一的方法来为这些静态单元创建出口并在代码中添加约束?
我在情节提要中有一些静态 UITableViewCells:
我希望底部四个单元格右侧的文本字段左对齐。Password 和 Some Password 之间已经存在约束,因为 Password 是屏幕上最长的标签。我希望其他文本字段与该文本字段对齐。
我似乎无法多选文本字段来添加对齐约束,也无法从文本字段拖动到另一个文本字段并获得一组约束选择。
有没有办法在 Xcode 中做到这一点,或者是唯一的方法来为这些静态单元创建出口并在代码中添加约束?
我刚刚尝试通过手动将所有标签向右对齐并将所有文本字段向左对齐来解决您的问题,然后应用以下约束。
因此,文本字段以灵活的宽度向左对齐,标签以固定的宽度向右对齐。
它对我来说效果很好。
我刚刚在代码中解决了这个问题。只需给除最长标签外的每个标签一个固定宽度约束即可。然后在您的视图控制器中制作这些约束的出口。然后在 viewDidLayoutSubviews 中,将这些约束的宽度设置为最长标签框架的宽度,例如:
nameLabelWidthConstraint.constant = passwordLabel.frame.size.width
locationLabelWidthConstraint.constant = passwordLabel.frame.size.width
emailLabelWidthConstraint.constant = passwordLabel.frame.size.width
您可能想要右对齐标签,这当然取决于您想要什么。
如果标签的名称是动态的(比如支持更多语言时),那么您可能还想检查哪个标签在代码中也是最长的。在这种情况下,您不想在情节提要中设置 with 约束。相反,您需要首先检查每个标签的框架宽度。找到最大的数字,然后将宽度约束添加到代码中具有该宽度的每个标签。