【发布时间】:2011-02-23 13:47:13
【问题描述】:
当用户使用以下代码将表格切换到编辑模式时,我正在向 UITableView 部分添加一行:
- (void) setEditing:(BOOL) editing animated:(BOOL) animated {
[super setEditing:editing animated:animated];
if (editing) {
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject: [NSIndexPath indexPathForRow:0 inSection:SECTION_SUPPLIERS]] withRowAnimation:UITableViewRowAnimationFade];
}
}
要创建“添加新供应商...”行的对象。这可行,但是当表格想要获得编辑样式以便它可以添加加号或减号图标时,我遇到了问题。
- (UITableViewCellEditingStyle) tableView:(UITableView *) tableView editingStyleForRowAtIndexPath:(NSIndexPath *) indexPath {
return ([self.tableView isEditing] && indexPath.row == 0) ? UITableViewCellEditingStyleInsert : UITableViewCellEditingStyleDelete;
}
顺序似乎是这样的:
- 表格切换到编辑状态。此时只有一个供应商行,因此它会查询行 == 0 的编辑样式。
- 新行的插入完成,然后再次触发另一个编辑样式查询,行 == 0。
因此,如果我使用此序列并使用行号和 tableView isEditing 来决定编辑样式图标,我最终会得到带有加号图标的添加新供应商行和当前供应商行。
插入一行并分配适当的编辑样式的最佳方法是什么 - 加号表示添加新行,减号表示任何其他行?
【问题讨论】:
标签: ios uitableview