1、定义字典,缓存每行高度
var cellHeights = [String:CGFloat]()
2、在生成单元格时,计算label高度和单元格总高度 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(idCell) as? TVCellTitle2
cell?.labelText1.text = items[indexPath.row].title
cell?.labelText1.textColor = UIColor(red: 0, green: 0, blue: 1, alpha: 1)
var content = items[indexPath.row].publishtime!
content += "\n"
content += items[indexPath.row].remark!
cell?.labelText2.text = content
cellHeights[items[indexPath.row].recid!] = cell!.labelText2.sizeThatFits(CGSize(width: tableView.frame.width, height: CGFloat.max)).height + 20
return cell!
}
3、在获取单元格高度时,根据字典查找
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let height = cellHeights[items[indexPath.row].recid!]
return height == nil ? 70 : height!
}