使用 Masonry 在它的超级视图中居中视图
Centering a view within it's superview with Masonry
我正在尝试将 Masonry
用于 iOS。我有一个标签和一个视图。
我想将标签添加到视图中并在视图中水平居中。
然而,我使用砌体创建的约束无法正常工作。
UILabel *a = [UILabel new];
a.text = @"Hi";
a.textColor = [UIColor blackColor];
[a sizeToFit];
UIView *b = [UIView new];
b.frame = CGRectMake(0, 0, CGRectGetWidth(a.frame) + 18.0f, 19.0f);
[b addSubview:a];
[a mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(b.mas_centerX);
}];
如何使用 Masonry 将视图 "superview" 正确居中?
如果添加顶部约束,它会起作用:
[a mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@0)
make.centerX.equalTo(b);
}];
但是你可以一直自动布局并摆脱设置 frame
和 sizeToFit
东西:
UILabel *a = [UILabel new];
a.text = @"Hi";
a.textColor = [UIColor blackColor];
UIView *b = [UIView new];
[b addSubview:a];
[a mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@0);
make.centerX.equalTo(b);
}];
[b mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(a).with.offset(18)
make.height.equalTo(a)
}];
我正在尝试将 Masonry
用于 iOS。我有一个标签和一个视图。
我想将标签添加到视图中并在视图中水平居中。
然而,我使用砌体创建的约束无法正常工作。
UILabel *a = [UILabel new];
a.text = @"Hi";
a.textColor = [UIColor blackColor];
[a sizeToFit];
UIView *b = [UIView new];
b.frame = CGRectMake(0, 0, CGRectGetWidth(a.frame) + 18.0f, 19.0f);
[b addSubview:a];
[a mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(b.mas_centerX);
}];
如何使用 Masonry 将视图 "superview" 正确居中?
如果添加顶部约束,它会起作用:
[a mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@0)
make.centerX.equalTo(b);
}];
但是你可以一直自动布局并摆脱设置 frame
和 sizeToFit
东西:
UILabel *a = [UILabel new];
a.text = @"Hi";
a.textColor = [UIColor blackColor];
UIView *b = [UIView new];
[b addSubview:a];
[a mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@0);
make.centerX.equalTo(b);
}];
[b mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(a).with.offset(18)
make.height.equalTo(a)
}];