swift如何在拥有多个自定义UITableViewCells时设置动态高度

时间:2015-03-25 13:33:54

标签: ios iphone uitableview swift

如何根据内容设置高度,具有多个自定义UITableViewCell?

这就是我尝试的方式:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{
var currentCell:UITableViewCell? = tableView.cellForRowAtIndexPath(indexPath)
println("reuseIdentifier: \(currentCell?.reuseIdentifier)")

currentCell?.layoutIfNeeded()

let height: CGFloat = currentCell?.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height as CGFloat!
let separatorHeight:CGFloat = 1

return height + separatorHeight
}

但由于我无法获得当前的单元格而崩溃。

1 个答案:

答案 0 :(得分:0)

在cellForRowAt中设置tableview accessibilityHint

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: 
  IndexPath) -> UITableViewCell {

  tableview.accessibilityHint = NUMBERINPUT

  self.tableview.register(textFieldNib, forCellReuseIdentifier: 
  TEXT_FIELD_CELL_IDENTIFIER)

  let cell = tableview.dequeueReusableCell(withIdentifier: 
  TEXT_FIELD_CELL_IDENTIFIER, for: index)as! TextFieldTableViewCell

  return cell

 }

在heightForRowAt中检查accessibilityHint并调整自定义UITableViewCell的高度

 func tableView(_ tableView: UITableView, heightForRowAt indexPath: 
 IndexPath) -> CGFloat {

    if tableView.accessibilityHint == NUMBERINPUT{

        return 500

    }else{

        return 100

    }

}