如何暂时隐藏或删除UITableViewCell的内容

时间:2014-09-18 08:29:05

标签: c# ios uitableview xamarin heightforrowatindexpath

我有一个静态UITableView并希望隐藏一个表格单元格(我想要隐藏单元格中的日期选择器)。我想在heightForRowAtIndexPath方法中执行此操作:

public override float GetHeightForRow (UITableView tableView, NSIndexPath indexPath)
{
    float height = this.TableView.RowHeight;

    if (indexPath.Row == 5 || indexPath.Row == 7) {
        height = 0.0f;
    }

    return height;
}

当我这样做时,单元格的内容与其他内容重叠。在我的情况下,datepicker占据整个屏幕。标签等也是如此。此外,似乎分隔线仍在那里。

如何暂时删除或隐藏包含内容的单元格?

您无需提供C#解决方案。我会自己翻译。顺便说一句:我正在使用iOS 7.1

3 个答案:

答案 0 :(得分:3)

在IB中检查您的单元格的“剪辑子视图”。不是单元格的“内容视图”。

通过代码来解决这个问题:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
    if(indexPath.row == 5 || indexPath.row == 7) {
        cell.clipsToBounds = YES;
    }
    return cell;
}

答案 1 :(得分:0)

我会尝试减少numberOfRowsInSection:,并在cellForRowAtIndexPath:中考虑这一点,但我不能100%确定是否有效。

答案 2 :(得分:0)

我建议你更新方法 -

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
     if (indexPath.Row == 5 || indexPath.Row == 7) {
        return 0.0f;
     }
    return 50; // some static value
}

我希望这能解决你的问题。