修改
我正在使用程序化的自动布局,这个问题似乎在逃避我,
在这个课程中
@interface FooterButtonView : UIView {
...
}
我试图并排排列两个观点
- (void)setUpViewWithTwoElements:(UIView*)element1 :(UIView*)element2{
element1.translatesAutoresizingMaskIntoConstraints = NO;
element2.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary* views = @{@"element1":element1, @"element2":element2};
NSDictionary* metrics = @{@"buttonHeight":@30.0};
NSString* horizontalFormatString = @"H:|-[element1]-[element2]-|";
NSString* verticalFormatString = @"V:[element1(buttonHeight)]-|";
[self addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:horizontalFormatString
options: NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom
metrics:nil
views:views]];
[self addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:verticalFormatString
options:nil
metrics:metrics
views:views]];
}
但是没有显示任何元素。
在init中我添加了两个子视图,然后调用上面的函数。这两个元素都来自UIButton。
非常感谢任何建议。谢谢!
答案 0 :(得分:0)
你应该看到你发布的代码,假设调用此代码的init方法本身被调用(并且FooterButtonView显示的大小非零)。但你忽略的一件事是两个视图的相对水平尺寸。使用您拥有的代码,系统无法知道每个元素的大小,只是它们应该占据整个宽度减去标准间距。如果您希望两个视图的大小相同,请更改为
NSString* horizontalFormatString = @"H:|-[element1]-[element2(==element1)]-|";