在AutoLayout中具有相同宽度的UIViews无法正常工作

时间:2014-09-04 17:21:13

标签: ios autolayout

我的问题非常简单,但我试图找到一个解决方案并没有出来。 我有两个视图,我想根据内容的宽度水平放置相同的宽度。我使用可视化格式语言以编程方式完成所有操作。我已经搜索了这个但是我没有发现任何与两个或多个具有相同宽度的视图有关,使用AL应用于持有者视图。

相关的代码是:

NSDictionary *views = NSDictionaryOfVariableBindings(_firstButton, _secondButton);
NSString *visualFormatString = @"H:|[_firstButton]-5-[_secondButton]|";
NSArray *horizontalConstraint = [NSLayoutConstraint constraintsWithVisualFormat:visualFormatString
                                                                        options:0
                                                                        metrics:nil
                                                                          views:views];
[self addConstraints:horizontalConstraint];

因此,我有不同宽度的视图,并且未应用可视格式语言中指定的空间,第一个视图(左侧)大于第二个视图。

我正在一个视图的layoutSubviews中执行这段代码,该视图将保留这两个按钮。在AL代码之后调用[super layoutSubviews]。 我试图搞清楚,但我找不到解决方案。我可以放一个静态宽度,但这不会很好,虽然它有效。社区中的任何人都能为我解决这个问题吗?感谢您的关注。

1 个答案:

答案 0 :(得分:0)

您的格式字符串需要包含两个视图应具有相同宽度的事实

"H:|[_firstButton]-5-[_secondButton(==_firstButton)]|"