更改节中特定索引的行高

时间:2018-07-12 06:25:51

标签: ios swift uitableview

我一直在使用以下方式设置表格视图的单元格高度

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)但我不想更改模型。该怎么办?

1 个答案:

答案 0 :(得分:0)

使用标记检查是否单击了按钮。然后,在点击按钮后重新加载表格。

<xsl:if>

更长,更易读的版本:-

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return indexPath.section == 0 ? buttonClicked && indexPath.row == 0 ? CGFloat.leastNormalMagnitude : 100 : UITableViewAutomaticDimension
}