用砌体将视图居中

  • 本文关键字:视图 ios masonry-ios-osx
  • 更新时间 :
  • 英文 :


我正在尝试使用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);
}];

如何在它的"父视图"正确与砌体中心视图?

如果您添加顶部约束,则可以使用

[a mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(@0)
    make.centerX.equalTo(b);
}];

然而,你可以自动布局,并摆脱设置framesizeToFit的东西:

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)
}];

最新更新