繁体   English   中英

使细胞在TableView中显示和消失

[英]Make cells appear and disappear in TableView

我使用表视图和数据源(核心数据)制作应用程序。 在这个表中,我按日期排序了几个任务,我有这个分段控件。 我希望表只加载稍后或等于今天日期的任务,当用户点击我要显示所有任务的第二段时,如果他点击第一段,表必须再次只显示更晚的日期任务。

问题是:

1 - 我正在使用fetchedResultsController与indexPath关联来获取托管对象。

2 - 我使用insertRowsAtIndexPaths:withRowAnimation:和deleteRowsAtIndexPaths:withRowAnimation:方法使单元格显示和消失。 这与我的indexPaths混乱,如果我想在删除行之后转到特定行的详细视图,它与不同的indexPath关联。

这个问题是由我所做的一个方法修复的,但是我仍然有indexPaths和cell的其他问题,而且在我看来,每个问题都解决了我的问题。

有一个简单的方法吗?

我试图隐藏单元格而不是删除,它工作得很好,但在隐藏单元格的位置是一个空白区域,如果有一种方法来隐藏这些单元格并使非隐藏单元格占据空白我认为这将是最简单的方法。

有人可以帮帮我吗?

隐藏时将单元格的高度设置为0,并在出现时将高度设置回原始值。

TableViewController.h

@interface TableViewController{
CGFloat cellHeight;
}

TableViewController.m

- (void)cellHeightChange{
//if you need hide the cell then
cellHeight = 0;
cellNeedHide.hidden = YES;
//if you need hide the cell then
cellHeight = 44; // 44 is an example
cellNeedHide.hidden = NO;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    switch (section) {
    // for example section 0 , row 0 is the cell you wanna hide.
    case 0:
        switch (row) {
            case 0:
            return cellHeight;
        }
    }
}

当用户点击一个段时,在您的托管对象上执行一个新的提取请求,为您提供一个合适的数组(所有日期的数组,或更大/相等的日期)。 然后在数据源中使用此新数组在tableView上使用reloadData

要么

给你想要隐藏高度0的单元格?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM