这应该很容易,但是我遇到了麻烦。

我有一个静态UITableView,带有一个单元格,如果不需要的话,我想以编程方式将其删除。

我有一个IBOutlet

IBOutlet UITableViewCell * cell15;

我可以通过致电将其删除
cell15.hidden = true;

这将其隐藏,但在该单元格以前曾经是一个空白处,我无法摆脱它。

也许是将其高度更改为0的技巧?
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:indexPath
{
//what would I put here?
}

非常感谢!

最佳答案

您无法真正在数据源中处理此问题,因为使用静态表甚至都没有实现数据源方法。高度是要走的路。

试试这个:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell == cell15 && cell15ShouldBeHidden) //BOOL saying cell should be hidden
        return 0.0;
    else
        return [super tableView:tableView heightForRowAtIndexPath:indexPath];
}

更新

看来,在自动布局下,这可能不是最佳解决方案。还有一个替代答案here可能会有所帮助。

10-08 05:59