关于AutoLayOut的使用心得

对于复杂的布局,尽量让子view针对父view布局。

在xcode 8 中,使用自动推算高度时, 对tableView进行约束时容易出现约束冲突。

比如:
在cell的contentView中添加一个bgview,bgview中有两个label并排排列,bgview的背景为红色,现在想让bgview根据lablel的文字内容自动缩放宽度,并在contentview居中显示。

1、初始化约束

<div>
 WS(weakSelf);
    
    [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.offset(10);
        make.bottom.offset(-10);
        make.centerX.offset(0);
    }];
    
    [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.leading.offset(5);
        make.bottom.offset(-5);
    }];
    

    [self.clickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.leading.equalTo(weakSelf.titleLabel.mas_trailing);
        make.top.bottom.equalTo(weakSelf.titleLabel);
        make.trailing.offset(-5);

    }];
</div>

2.在label赋值后更新bgview的约束

<div>
CGSize size = [self.bgView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

    [self.bgView mas_updateConstraints:^(MASConstraintMaker *make) {
        make.size.mas_equalTo(size);
    }];
</div>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容