我们首先来看一张图

需求:
昵称和时间是两个label,添加约束的时候不能限制宽度
时间label必须全部展示,不能省略,两个label长度大于剩余空间的时候要省略昵称(昵称不限制长度)
第一步:添加相关约束
//名字
[self.name_label mas_makeConstraints:^(MASConstraintMaker*make {
make.centerY.equalTo(weakSelf.name_imageV.mas_centerY);
make.left.equalTo(weakSelf.name_imageV.mas_right).offset(pading);
}];
//时间图标
[self.time_imageV mas_makeConstraints:^(MASConstraintMaker*make){
make.centerY.equalTo(weakSelf.name_imageV.mas_centerY);
make.left.equalTo(weakSelf.name_label.mas_right).offset(spaceing);
make.width.height.offset(13);
}];
//时间
[self.time_label mas_makeConstraints:^(MASConstraintMaker*make){
make.centerY.equalTo(weakSelf.name_imageV.mas_centerY);
make.left.equalTo(weakSelf.time_imageV.mas_right).offset(pading);
make.right.lessThanOrEqualTo(weakSelf.superView.mas_right).offset(-50)
;}];
第二步:设置优先级<重点>:懒加载内部要设置这个优先级
- (UILabel *)time_label {
if (!_time_label) {
_time_label = [[UILabel alloc] init];
[_time_label setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
}
return _time_label;
}
转载原文:iOS开发之约束特殊用法 - 简书
网友评论