Masonry 注意事项

  • UILabel 下使用Masonry无法换行 之 preferredMaxLayoutWidth
//初始化 UILabel
_shopDesLab = [[UILabel alloc] init];
_shopDesLab.numberOfLines = 0;
_shopDesLab.lineBreakMode = NSLineBreakByWordWrapping;
_shopDesLab.font = kFont;

//利用Masonry进行约束
//有bug的写法,文本超出行宽无法进行换行
CGFloat height = @"根据字符串计算出Lable的准确高度";
[_shopDesLab mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(self);
    make.left.right.equalTo(self);
    make.height.offset(height);
}];

🐷注意:
经过大佬们的指点:需要设置'preferredMaxLayoutWidth'
preferredMaxLayoutWidth它的作用就是:在对Label添加约束布局的时候,如果文本超出preferredMaxLayoutWidth指定的行宽,Label就会流到下一行,增加Label的高度.

//无bug写法
_shopDesLab.preferredMaxLayoutWidth = ([UIScreen mainScreen].bounds.size.width);
[_shopDesLab mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(self.shopNameLab.mas_bottom);
    make.left.right.equalTo(self);
}];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容