swift heightForRowAt indexPath not update



使用此代码,我根据数组中的项目数设置单元格的自动尺寸。它可以工作,但是当我使用另一个 viewController 添加一些新项目然后返回时,即使数组数量增加,高度也不会更新。

我在视图中得到数组确实出现

有人可以帮助我吗?

  override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        
      print("called")        
        
           let misure = self.array.count
 
            let cellHeight = CGFloat(50.0 * Float(misure))
            
            print(cellHeight)
            print(misure, " misure")
            let section = indexPath.section
            let row = indexPath.row
            if section == 3 && row == 0{
                return 100.0
            }else if section == 4 && row == 0{
                return cellHeight + 60.0
            }
            return 44.0
        
        
    }

在视图中我设置了

tableView.estimatedRowHeight = 44

我认为如果你打电话tableView.layoutIfNeeded()应该更好。这将更新处于挂起状态的任何布局更新。没有尝试用这个修改高度,但它应该可以工作。

在获取数组更新后调用 tableView.reloadData()

哇,我找到了解决方案!

感谢这个答案:Swift:如何在不重新加载数据的情况下重新加载UITableViewCell中的行高

刚刚用过

tableView.beginUpdates()
tableView.endUpdates()

在视图中确实出现

我希望它能帮助其他人!

相关内容

  • 没有找到相关文章