应用程序显示项目列表。每个项目都可以以基本或扩展模式呈现。扩展模式提供有关该项的更多详细信息,并具有由独立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];
}
答案 0 :(得分:0)
尝试在修改后添加[cell setNeedsDisplay]
- 这将强制在下一个绘制周期中重绘它。
编辑:如果高度发生变化,我认为你必须重新加载表视图或那些单元格。修改单元格后,您可以尝试基本的更新调用:
[tableView beginUpdates];
[tableView endUpdates];
如果这不起作用,您可能想尝试在beginUpdates
和endUpdates
电话之间进行特定的重新加载 -
[tableView beginUpdates];
[tableView reloadRowsAtIndexPaths:<indexPath here> withRowAnimation:UITableViewRowAnimationNone];
[tableView endUpdates];