白百何.jpg
先看效果
Untitled.gif
图中的自适应是利用Masonry结合iOS 8 以后苹果提供的estimatedRowHeight实现自动计算行高,简单方便适应只有文字需要动态计算的情况
0.打开预估行高属性
_tableView.estimatedRowHeight = 100;
说明:100是这里的预估高度并不是真实的高度,每次tableView在滑动的时候会以预估行高为参考值进行计算,苹果官方文档说这个值越接近真实的高度,计算的高度越准确
1.设置label
- (UILabel *)contentLabel {
if (_contentLabel == nil) {
_contentLabel = [[UILabel alloc]init];
_contentLabel.text = @"内容";
_contentLabel.font = [UIFont systemFontOfSize:13];
_contentLabel.numberOfLines = 0;
_contentLabel.textAlignment = NSTextAlignmentLeft;
_contentLabel.textColor = [UIColor darkGrayColor];
}
return _contentLabel;
}
说明: _contentLabel.numberOfLines = 0;一定不要忘记打开,否则不会折行显示
3.最后设置label的frame ,这里我用的是Masonry布局
/// 添加头像
[self addSubview:self.icon];
[self.icon mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.mas_equalTo(self).offset(space);
make.size.mas_equalTo(CGSizeMake(space * 2, space * 2));
}];
/// 添加内容
[self addSubview:self.contentLabel];
[self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.icon);
make.right.mas_equalTo(self).offset(-space);
make.top.mas_equalTo(self.icon.mas_bottom).offset(space);
}];
/// 点赞按钮
[self addSubview:self.dicsucButton];
[self.dicsucButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.contentLabel.mas_bottom).offset(space);
make.right.mas_equalTo(self).offset(-space);
make.bottom.equalTo(self).offset(-5);
}];
C727C3D3-16B9-4E19-BDE7-9870936B0021.png
说明:他们的位置关系我已经在图上画出,,label的高度是根据里面的内容自动撑开的,所以不用设置label底部的约束
网友评论