2

我尝试使用 Auto Layout Visual Format 实现以下约束:

  1. 从容器视图标签的标准距离
  2. 从容器视图textField的固定距离
  3. labeltextField之间的基线对齐

前两个约束很简单:

var viewDict: [NSObject:AnyObject] = [:]
viewDict["label"] = label
viewDict["textField"] = textField

self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("|-[label]", options: nil, metrics: nil, views: viewDict))
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("|-100-[textField]", options: nil, metrics: nil, views: viewDict))

要对齐两个视图,我知道我必须相应地设置选项参数。根据规范,options 参数适用于格式字符串参数中所述的视图。

但是如何在不考虑视图之间的空间的情况下以格式字符串列出视图?

如果我做这样的事情,我会创建一个关于 和 之间距离的不需要的label约束textField

self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("[label]-[inputField]", options: NSLayoutFormatOptions.AlignAllBaseline, metrics: nil, views: viewDict))

我想我可以通过将不必要的大小约束的优先级设置为零来解决它,但我仍然觉得我在这里在概念上遗漏了一些东西。

在这种情况下是否建议不要使用视觉格式?

4

0 回答 0