1

应用程序显示项目列表。每个项目都可以以基本或扩展模式呈现。扩展模式提供有关该项目的更多详细信息,并具有由独立 XIB 文件定义的自己的布局。可以选择多个项目。必须在选择/取消选择项目时切换布局。

我正在使用 UITableView 实现列表。问题是单元格只有在滚动出来然后回到屏幕时才会被重绘。我该如何解决?

这是我现在正在做的事情:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell =[tableView cellForRowAtIndexPath:indexPath];
    cell = [tableView dequeueReusableCellWithIdentifier:ExtendedCellId];
}

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell =[tableView cellForRowAtIndexPath:indexPath];
    cell = [tableView dequeueReusableCellWithIdentifier:CollapsedCellId];
}
4

1 回答 1

0

尝试[cell setNeedsDisplay]在修改后添加 - 这将强制它在下一个绘制周期中重新绘制。

编辑:如果高度发生变化,我认为您必须重新加载表格视图或那些单元格。修改单元格后,您可以尝试基本的更新调用:

 [tableView beginUpdates];
 [tableView endUpdates];

如果这不起作用,您可能想尝试在beginUpdatesandendUpdates调用之间进行特定的重新加载 -

 [tableView beginUpdates];
 [tableView reloadRowsAtIndexPaths:<indexPath here> withRowAnimation:UITableViewRowAnimationNone];
 [tableView endUpdates];
于 2013-03-31T10:44:17.970 回答