Cell 的简单自适应高度

简单的cell自适应高度



在viewDidLoad中写上这两句就够了

self.tableView.estimatedRowHeight = 100//  随便设个不那么离谱的值

self.tableView.rowHeight = UITableViewAutomaticDimension;

都不需要实现tableView的代理方法heightForRowAtIndexPath;


iOS 7:

如果要适配iOS 7 ,要实现tableView的代理方法heightForRowAtIndexPath

//自动算高度,+1的原因是因为contentView的高度要比cell的高度小1

CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + 1;

return height;


XIB:

如果是使用的xib约束的cell, 那么注意一定要使cell的contentView四个方向都找到约束对象。



从图中可以看到cell的contentView的

左边:头像左约束(5个像素)或者大图的左约束(45个像素)

上边:头像的顶部约束(5个像素)

下边:大图的下部约束(5个像素)

右边:label的右约束(5个像素),这里忘了显示出来。

这样把四周都框起来了,那么具体cell要多高呢 ?这里只需要通过大图和label就能确定具体多高了。大图的高度固定值:100;唯一不确定的是label,也正是因为label的高度不确定,才让我们来实现其自适应高度啊。

label的左边距离头像5个像素,或者和大图左对齐是一样的效果;

label的右边约束上面已经设置好了;

label的头部跟头像对齐就好了;

label的高度确定要么是固定值,要么就是一条下边约束,固定值当然不可能了,因为这里我们就是不想固定,自适应高度啊。那么就来一条约束吧,距离大图5个像素就好了。因为大图的frame基本是可以确定的,label相对于它就能确定出frame了

其他的没有什么,只要这里约束好了,controller.m中不需要添加什么代码,就跟之前的一样,有那两句就够了。

效果图:


demo 传送门:https://github.com/AllenYL/iOS-cell

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值