如何在屏幕上滚动和返回时保留UITableViewCell的选定状态

时间:2013-03-17 00:10:01

标签: ios uitableview

我在UITableView中有自定义的UITableViewCell单元格。当用户选择单元格并且单元格从屏幕滚动,然后滚动回屏幕时,所选单元格为空白。

我知道我需要在细胞重新使用时设置细胞中的所有值,但我无法弄清楚这一点。

Iamge 1表示用户选择单元格:

Table when a cell is selected

图像2表示单元格在屏幕上滚动并返回屏幕时的情况 Table when the cell is scrolled off screen and back on screen

(忽略图像模糊的事实,只是保护我的客户数据)

注意:我希望能够选择表格,不建议删除突出显示单元格的功能。我实际上希望能够在将选定单元格滚动回屏幕时看到蓝色单元格。

任何帮助将不胜感激。

编辑:添加一些代码:

// Define a property to keep track of the cell that was selected last using the NSIndexPath
@property (nonatomic, strong) NSIndexPath *lastSelectedIndexPath;

///////

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Keeps track of the lastest selected entry
    self.lastSelectedIndexPath = indexPath;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    IPCSearchResultTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
    [self configureCell:cell atIndexPath:indexPath];

    return cell;
}

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    // Cast the cell to the custom cell
    IPCSearchResultTableViewCell *searchResultCell = (IPCSearchResultTableViewCell *)cell;

    // RepositoryIndex is a coredata object with information 
    MyCoreDataEntity *entity = [self.fetchedResultsController objectAtIndexPath:indexPath];
    searchResultCell.label1.text = entity.attribute1;
    searchResultCell.label2.text = entity.attribute2;
    searchResultCell.label3.text = entity.attribute3;
    searchResultCell.label4.text = entity.attribute4;
}

*注意:上面的代码现在似乎正在运行。我不再遇到这个问题了,不知道为什么*

1 个答案:

答案 0 :(得分:0)

您是否尝试维护一系列索引路径(所选单元格)

然后在cellForRowAtIndexPath方法中设置[cell setSelected:]方法,如果indexPath在数组中。