如何根据内容设置高度,具有多个自定义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
}
但由于我无法获得当前的单元格而崩溃。
答案 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
}
}