如何从表视图IOS中删除一行

时间:2012-08-09 04:30:05

标签: iphone objective-c ios xcode

我想从表视图中删除一行而不使用下面的数据源方法。怎么做?

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

3 个答案:

答案 0 :(得分:3)

不是那么简单,你必须使用UITableView

原子地执行此操作
[_tableView beginUpdates]; // <-- pretty important

long selectedRow = _tableView.selectedRow;

[_tableView removeRowsAtIndexes:[NSIndexSet indexSetWithIndex:selectedRow] withAnimation:NSTableViewAnimationSlideUp];

//then remove your object from the array
[((NSMutableArray*) _searchResults) removeObjectAtIndex:selectedRow];

[_tableView endUpdates];

这可以防止在更新数组时调用委托方法。

答案 1 :(得分:2)

[UITableView deleteRowsAtIndexPaths: withRowAnimation:]怎么样?

(我已经链接了Apple链接的文档)。

@Scar的想法也很好,但是这会刷新整个表格,如果用户滚动到表格的底部并且刷新将它们带到顶部,则可能会对用户造成一点破坏。

答案 2 :(得分:1)

从模型中删除行并调用-deleteRowsAtIndexPaths:withRowAnimation: