我知道这可能听起来像一个愚蠢的问题,但我已经看过每一个地方。我怎么能这样做?
我知道如何使用swype-to-delete方法执行此操作,但是如何在该函数之外执行此操作?
请发布一些代码示例。
谢谢!
库尔顿
答案 0 :(得分:117)
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
insertIndexPaths
是要插入到表中的NSIndexPaths数组。
deleteIndexPaths
是要从表中删除的NSIndexPaths数组。
索引路径的示例数组格式:
NSArray *insertIndexPaths = [[NSArray alloc] initWithObjects:
[NSIndexPath indexPathForRow:0 inSection:0],
[NSIndexPath indexPathForRow:1 inSection:0],
[NSIndexPath indexPathForRow:2 inSection:0],
nil];
答案 1 :(得分:7)
在Swift 2.1 +中
tableView.beginUpdates()
tableView.deleteRowsAtIndexPaths([YourIndexPathYouWantToDeleteFrom], withRowAnimation: .Fade)
tableView.insertRowsAtIndexPaths([YourIndexPathYouWantToInsertTo], withRowAnimation: .Fade)
tableView.endUpdates()
您可以像这样轻松创建NSIndexPath:
NSIndexPath(forRow: 0, inSection: 0)
答案 2 :(得分:4)
您需要这两种方法:insertRowsAtIndexPaths:withRowAnimation:
和deleteSections:withRowAnimation:
它们都在UITableView documentation中详细说明。
答案 3 :(得分:1)
Swift 4.0
tableView.beginUpdates()
tableView.deleteRows(at: [YourIndexPathYouWantToDeleteFrom], with: .fade)
tableView.insertRows(at: [YourIndexPathYouWantToInsertTo], with: .fade)
tableView.endUpdates()
要创建IndexPath,请使用:
IndexPath(row: 0, section: 0)