在UITableView中添加一行以添加新项目?

时间:2010-04-05 22:34:43

标签: iphone

为了向用户提供用户界面向表格视图添加新项目的UI,我想在视图处于编辑模式时在指定位置(例如最后一行)的表格中添加新行(我有视图导航栏右侧的编辑按钮)。这个新行将在左侧显示一个添加按钮指示器,在右侧显示附件箭头。当视图未处于编辑模式时,不应显示此添加行。

我不确定是否应该覆盖:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{...}

我调用UITableView的方法:

insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:
 (UITableViewRowAnimation)animation

插入新行?

我的理解是这个调用可能会在表视图中添加一个新行。表视图的数据源来自CoreData存储。不确定这可能会导致数据存储和表视图中的数据数量不一致吗?如果没关系,我必须在表格视图中管理行,如何在新行中添加左添加指示符和左显示箭头?

另一个问题是,如果我可以将新行插入添加行,那么当表格视图不处于编辑模式时,是否应将其删除?

只想知道我是否走在正确的轨道上。

1 个答案:

答案 0 :(得分:1)

– insertRowsAtIndexPaths:withRowAnimation:将向TableView添加一行。该行将存在于TableView中,直到删除它或重新加载数据。如果退出编辑模式,则使用以下方法将该行的外观发送到DataSource对象:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

退出编辑模式时,将触发DataSource对象,使您有机会将事物恢复到一致状态。在超级调用之前重写setEditing并插入和删除行可能比编写commitEditingStyle DataSource方法的接口更容易 - 这有点奇怪。