将砌体x / y约束设置为视图宽度/高度的百分比

时间:2019-05-14 20:45:53

标签: ios objective-c swift autolayout masonry-ios-osx

我试图将视图的顶部约束(y值)设置为超级视图高度的百分比(乘数)。我需要使用参考而不是值约束来说明设备旋转。

等效于我在非自动布局中的尝试,如下所示:

[self.labelView setFrame:CGRectMake(0, self.frame.size.height * 0.8, self.frame.size.width, 20)];

我想要实现的是将视图的TOP约束设置为超级视图高度的80%,如下所示:

[self.labelView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(self.contentView.mas_height).multipliedBy(0.8);
    make.left.and.right.equalTo(self.contentView);
    make.height.equalTo(20);
}];

但是,这种方法不起作用。石工图书馆有可能吗?

1 个答案:

答案 0 :(得分:1)

尝试设置contentView.mas_heightcontentView.mas_bottom约束,而不是labelView.top使用labelView.bottom,我认为都应产生相同的结果:

[labelView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.bottom.equalTo(self.contentView.mas_bottom).multipliedBy(0.8);
    make.left.and.right.equalTo(self.contentView);
    make.height.equalTo(@20);
}];

快速等效

labelView.mas_makeConstraints { (make:MASConstraintMaker!) in
    make.bottom.equalTo()(self.contentView.mas_bottom)!.multipliedBy()(0.8)
    make.left.and().right().mas_equalTo()(self.contentView)
    make.height.mas_equalTo()(20.0)
}