swift heightForRowAt indexPath不更新

时间:2017-10-11 13:06:44

标签: swift height cell heightforrowatindexpath indexpath

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

我在viewDidAppear中获取数组

有人可以帮助我吗?



  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
        
        
    }




在viewDidLoad中我已设置

tableView.estimatedRowHeight = 44

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

哇,我找到了解决方案!

感谢您的回答:Swift: How to reload row height in UITableViewCell without reloading data

刚刚使用

tableView.beginUpdates()
tableView.endUpdates()

在viewDidAppear

我希望它会帮助别人!

答案 2 :(得分:0)

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