当用户点击一个单元格时,我想更新我的 UITableView ;包括这个被点击的单元格的内容。最简单的方法是更新内部参数,然后调用 [self.tableView reloadData]; .
但是,reloadData 会立即停止漂亮的蓝色->我点击的单元格的无选择动画。
是否有(标准)方法可以在不停止点击单元格动画的情况下更新表格单元格?
请注意,在这种情况下,我不会添加或删除单元格;我只想更改内容(例如启动事件指示器,或更改标签颜色。)
Best Answer-推荐答案 strong>
在您的情况下,您可以获取指向所有可见单元格的指针并更新它们。像这样的:
- (void)tableViewUITableView*)tableView didSelectRowAtIndexPathNSIndexPath*)indexPath
{
NSArray* visibleCells = [tableView indexPathsForVisibleRows];
for (NSIndexPath* indexPath in visibleCells)
{
UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
[self updateCell:cell atIndexPath:indexPath]; // Your method, which updates content...
}
}
如果你想更新其他单元格的内容,你可以使用这样的东西:
- (void)tableViewUITableView*)tableView willDisplayCellUITableViewCell*)cell forRowAtIndexPathNSIndexPath*)indexPath
{
[self updateCell:cell atIndexPath:indexPath]; // Your method, which updates content...
}
因此您的单元格将始终显示正确的内容。
关于创建内容:
- (UITableViewCell*)tableViewUITableView*)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{
static NSString* CellIdentifier = @"Cell";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
[self createContentForCell:cell atIndexPath:indexPath]; // so here to create content or customize cell
}
return cell;
}
关于ios - 如何在不停止单元格选择动画的情况下重新加载 UITableView,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/18418466/
|