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

又是装机量少但依然蛋疼的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

参考下歪果仁的做法吧

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

相关阅读更多精彩内容

友情链接更多精彩内容