Autolayout,视图之间具有动态指定的间距

时间:2014-04-04 20:06:12

标签: ios ios7 autolayout

我一直在与Autolayout合作一段时间,并且几乎了解它是如何工作的。我无法弄清楚的一件事是视觉表现中的数字。

例如,V:|-(20)-[someView]我想要更多V:|-(x)-[someView]行。

在建立约束后,我不需要更改数字。但考虑到我同时处理许多约束,我试图找出最佳用户体验的最佳间距。我只想将20设置为所需的数字并重建应用,而不是通过并替换每个x。 (我知道查找/替换是有效的,但是如果你不小心的话,它可能很容易造成意想不到的变化)

我能想到的最佳是使用stringWithFormat,但这会增加代码中的集群,而且在涉及复杂视图时不具有很强的可扩展性。

1 个答案:

答案 0 :(得分:3)

我认为metrics正是您所寻找的。这是一个例子:

NSDictionary *views = @{@"blueView" : blueView};
NSDictionary *metrics = @{@"offset" : @(40)};
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-offset-[blueView]-offset-|" options:0 metrics:metrics views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-offset-[blueView]-offset-|" options:0 metrics:metrics views:views]];