我尝试使用 Auto Layout Visual Format 实现以下约束:
- 从容器视图到标签的标准距离
- 从容器视图到textField的固定距离
- label和textField之间的基线对齐
前两个约束很简单:
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))
我想我可以通过将不必要的大小约束的优先级设置为零来解决它,但我仍然觉得我在这里在概念上遗漏了一些东西。
在这种情况下是否建议不要使用视觉格式?