我一直在使用以下方式设置表格视图的单元格高度
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
switch indexPath.section {
case 0:
return 100
case 1:
tableView.estimatedRowHeight = 100
return UITableViewAutomaticDimension
default:
return 0
}
}
使用此方法,对于第1节中的所有行,将rowheight设置为100。现在,我想在单击按钮时将特定行的行高更改为0(即使其隐藏)。 / p>
我尝试过:
tableView.cellForRow(at: IndexPath(item: selectedIndex, section: 1))?.isHidden
尽管该单元格是隐藏的,但我剩下一个空白行,占据了行高。
所以我认为我应该将行高更改为0。
P.S。我知道这可以通过从模型中删除特定行并使用 deleteRows(at indexPaths:[IndexPath], 动画:UITableView.RowAnimation)但我不想更改模型。该怎么办?
答案 0 :(得分:0)
使用标记检查是否单击了按钮。然后,在点击按钮后重新加载表格。
<xsl:if>
更长,更易读的版本:-
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return indexPath.section == 0 ? buttonClicked && indexPath.row == 0 ? CGFloat.leastNormalMagnitude : 100 : UITableViewAutomaticDimension
}