TableViewCell 高度自适应(ios7 及 ios8)

#TableViewCell 高度自适应 实现方式

  1. 设置单元格约束 在UITableViewCell子类中,添加约束,使子视图的边缘与contentView的边缘固定(pin)(最重要的是要有顶部和底部的边距约束)。

注意:不能将子视图的边缘设置成与cell的边缘固定,只能设置为与contentView的边缘固定!

确保每个子视图在垂直方向上的内容压缩阻力(compression resistance)和内容吸附性约束(content hugging constraints)没有被你添加的更高优先级的约束覆盖,以使得这些子视图的固有内容尺寸(intrinsic content size)来推动contentView的高度。

  1. 高度设置
  • ios7 设置表格,heightForRowAtIndexPath方法

使用临时变量tempCell可以在 heightForRowAtIndexPath 中初始化

tempCell.setNeedsUpdateConstraints()
tempCell.updateConstraints()
tempCell.setNeedsLayout()
tempCell.layoutIfNeeded()
let height = tempCell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
return height + 1
  • ios8 设置表格,不需要heightForRowAtIndexPath方法
tabview.estimatedRowHeight = 44.0
tabview.rowHeight = UITableViewAutomaticDimension

###rowHeight

//指定了一个所有cell都是44高度的UITableView,对于定高需求的表格,强烈建议使用这种方式保证不必要的高度计算和调用
tabview.rowHeight = 44
// 实现了这个方法后,rowHeight的设置将无效。所以,这个方法适用于具有多种cell高度的UITableView。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

###estimatedRowHeight 估算高度有两种方法

  • tabview.estimatedRowHeight = 44.0
  • func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat

转载于:https://my.oschina.net/asjoker/blog/821192

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值