UITableView的静态单元格如何隐藏和显示

时间:2019-02-28 06:10:46

标签: ios uitableview

我想在UITableView中隐藏一个静态单元格,并使用其数据源方法做到了这一点。但是,当我尝试再次显示它时,我无法显示。这是测试代码:

        var flag = false

// MARK: - Table view data source
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == 0 && flag {
        return 0
    } else {
        return 44
    }
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.row == 0 {
        let cell = super.tableView(tableView, cellForRowAt: indexPath)
        cell.frame.size = CGSize(width: cell.frame.width, height: 44.0)
        cell.alpha = 1
        cell.autoresizingMask = UIView.AutoresizingMask(rawValue: 0)
        cell.subviews.first?.frame.size = CGSize(width: cell.subviews.first?.frame.width ?? 0, height: 44.0)
        cell.subviews.first?.alpha = 1
        cell.subviews.first?.autoresizingMask = UIView.AutoresizingMask(rawValue: 0)
        print("\(cell)")
        return cell
    } else {
        return super.tableView(tableView, cellForRowAt: indexPath)
    }
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    flag = !flag
    tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .automatic)
}

1 个答案:

答案 0 :(得分:0)

我发现我使用“ tableView.reloadData()”可以解决此问题。但这不是最好的方法。可能是苹果的错误吗?