具有动态指定视图之间间距的自动布局
Posted
技术标签:
【中文标题】具有动态指定视图之间间距的自动布局【英文标题】:Autolayout with dynamic specified spacing between views 【发布时间】:2014-04-04 20:06:12 【问题描述】:我使用 Autolayout 已经有一段时间了,并且非常了解它的工作原理。我无法弄清楚的一件事是视觉表示中的数字。
例如,V:|-(20)-[someView]
我想要更多类似V:|-(x)-[someView]
的东西。
约束建立后我不需要更改数字。但考虑到我同时处理许多限制,我试图找出最佳 UX 的最佳间距。我不想遍历并替换每个20
,我只想将x
设置为所需的数字并重建应用程序。 (我知道查找/替换有效,但它并不可靠,如果您不小心,很容易造成意外更改)
我能想到的最佳是使用stringWithFormat
,但这会增加代码中的集群,并且在涉及复杂视图时扩展性不强。
【问题讨论】:
【参考方案1】:我认为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]];
【讨论】:
确实这正是我想要的,谢谢!如果它只是一个简单的数字,这也适用于@40
而不是@(40)
以上是关于具有动态指定视图之间间距的自动布局的主要内容,如果未能解决你的问题,请参考以下文章