无法更改静态UITableViewCell高度

时间:2017-01-06 13:20:21

标签: ios xcode uitableview static cell

我使用包含3个不同单元格的静态表格视图。当点击第一个单元格中的按钮时,第一个单元格的高度应该增加。下面是点击按钮时调用的函数。

@Column(nullable = false)
@Temporal(TemporalType.TIMESTAMP)
@Version
private Date updated_at;

在表格视图的委托@IBAction func toggleExpandCamera(_ sender: Any) { self.shouldShowCameraPreview = !self.shouldShowCameraPreview self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .automatic) }

heightForRowAt()

我已经确认override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { if indexPath.row == 0 { let expandedHeight: CGFloat = 415 let collapsedHeight: CGFloat = 115 if self.shouldShowCameraPreview { return expandedHeight } return collapsedHeight } else if indexPath.row == 2 { // If already premium, dont show purchases cell. if AGTUserDefaultValues.isUserPremium { return 0 } // Last cell should be same height as the table view return self.tableView.frame.height - (self.navigationController?.navigationBar.frame.height ?? 0) - min(UIApplication.shared.statusBarFrame.height, UIApplication.shared.statusBarFrame.width) } else { return super.tableView(tableView, heightForRowAt: indexPath) } } 正在被调用,并且在调用heightForRowAt()时,其他单元格高度正常工作。它只是第一个表现得非常奇怪的细胞。好像它消失了什么的。我在扩展之前和之后都附上了屏幕截图。

Before expanding Camera quality cell After expanding cell

进一步检查,看起来细胞仍然存在,但仍然具有相同的高度。唯一的区别是现在两个单元之间的空间更大。我还发现单元格的alpha值为0。

Debug

更新 我试过创建了一个新项目,只有tableview和扩展单元格的功能,但仍然在那个项目上,同样的事情发生了。如果有人有兴趣帮助我上传了项目here

2 个答案:

答案 0 :(得分:0)

我已经尝试过你的项目并发现了改变:

self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .automatic) 

进入:

self.tableView.reloadData()

按预期工作。

答案 1 :(得分:0)

我想出了答案。在我的toggleExpandCamera()函数中,我没有重新加载表视图,而是将其替换为:

@IBAction func toggleExpandCamera(_ sender: Any) {
    self.shouldShowCameraPreview = !self.shouldShowCameraPreview
    self.tableView.beginUpdates()
    self.tableView.endUpdates()
}

细胞高度按预期动画。