我正在iOS表格行中实现行颜色更改逻辑,我使用删除按钮将标题更改为“更改颜色”,单击该按钮我想要更改单击按钮的特定行的颜色。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete)
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.contentView.backgroundColor = [UIColor redColor];
}
}
我尝试在上面的方法中实现颜色更改逻辑,但它没有反映,只反映数据重载但仍然是索引正在改变-2行。
如何更改单击“更改颜色(删除)”按钮的行的表格颜色并隐藏按钮(例如取消编辑)?
答案 0 :(得分:1)
你几乎拥有正确的解决方案,你需要做的就是:
indexPath
。仅在选定的indexPath
刷新tableView。
- (void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// 1. Find cell
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
// 2. Change bg colour
selectedCell.contentView.backgroundColor = [UIColor redColor];
// 3. Refresh tableView
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation: UITableViewRowAnimationFade];
}
}
Here是一个示例viewController,它应该如何使用。
答案 1 :(得分:0)
我不是iOS专家,请原谅我的无知,但这是一个原生的删除按钮?我还没有看到,所以不知道..
但是如果我实现这个,我会在文件的顶部定义一个常量:#define kCellTagDelete = 99
(或其他一些未使用的标记),
然后,当您按下删除按钮时,更改单元格的标记kCellTagDelete
,然后使用正确的indexPath调用reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
(您可以使用大小为1的数组),并更新您的{{1检查标签== kCellTagDelete的方法,如果是,则格式化。