美文网首页
关于在iOS 7的环境下实现有label的cell高度自适应

关于在iOS 7的环境下实现有label的cell高度自适应

作者: JohnDEEEN | 来源:发表于2015-08-12 17:13 被阅读0次

又是装机量少但依然蛋疼的iOS7的问题.

关于含有label的cell的高度自适应的问题,在iOS 8.0以上都能轻松解决.

在-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath里面返回height=UITableViewAutomaticDimension就可以了.

那么烦人的iOS7该怎么办呢?

首先,在heightForRowAtIndexPath里面建立一个临时用的label,UILabel * tempLabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width-168, CGFLOAT_MAX)];//随便写反正不添加到cell上面

tempLabel.text=@"........"

height=[thisClass labelheight:tempLabel];

[return height];

实现方法

+ (CGSize)labelheight:(UILabel *)detlabel

{

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

paragraphStyle.lineSpacing = 5;// 字体的行间距

NSDictionary *attributes = @{

NSFontAttributeName:[UIFont systemFontOfSize:15],

NSParagraphStyleAttributeName:paragraphStyle

};

CGSize size = CGSizeMake([UIScreen mainScreen].bounds.size.width - 168, 1000);

CGSize contentactually = [detlabel.text boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:attributes context:nil].size;

return contentactually;

}

有autoLayout可以这样做

Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

参考下歪果仁的做法吧

相关文章

网友评论

      本文标题:关于在iOS 7的环境下实现有label的cell高度自适应

      本文链接:https://www.haomeiwen.com/subject/agwiqttx.html