在Swift中的HeightForRowAt函数中设置UITableViewCell的大小后,如何调整其大小?

时间:2019-04-17 22:51:11

标签: ios swift uitableview

我希望最新的TableViewCell能够与TableView一样大,但是我希望每次创建新的旧单元格都能恢复正常大小。

我已经尝试过在HeightForRowAt函数中执行此操作,但是每个单元格都保持TableView大小。

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

    var cellHeight: CGFloat = CGFloat()
    for cell in tableView.visibleCells {
        cellHeight = cell.bounds.height
    }

    let TableHeight = tableView.frame.height


    if indexPath.row == arr.count - 1 {
        return TableHeight
    }else{

        return cellHeight
    }

}

创建单元后,是否有任何方法可以调整单元格的大小,或者其他解决问题的方法?

预先感谢

1 个答案:

答案 0 :(得分:3)

只需尝试将常数设为正常的单元格高度

 if indexPath.row == arr.count - 1 {
    return TableHeight
 }else{
    return 40 // or whatever you want
 }

如果您问自己为什么? 第一次,您的单元格高度将为,最后一个将为 TableHeight

然后每次调用heightForRowAt方法时,单元格的高度将为= TableHeight ,最后一个高度也将为 TableHeight

因为您的for循环将从 visibleCells 返回最后一个单元格高度,并且您有一个可见的单元格"other cells not visibles height = zero",所以它将是 TableHeight