我有一个包含 10 个部分的 tableView,每个部分有 3 行。
是否可以使用 tableViewDelegate 方法重新排序该部分
-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
toIndexPath:(NSIndexPath *)toIndexPath {
}
现在,如果我从一个部分拖放一行并将其放到另一个部分,它就会被添加到那个部分。页脚 View 也未被选中进行重新排序,它保留在原始部分中。
有什么想法吗?
谢谢
最佳答案
由于这是 Google 的首批结果之一,我想我应该添加 swift 代码。 Objective-C 将几乎相同,除了 moveRowAtIndex
中的 indexPaths 的名称。
启用编辑模式:
如果您使用的是 UITableViewController,您可以通过以下方式切换编辑模式:
func toggleEditing() {
self.editing = !self.editing
}
如果您没有使用 UITableViewController(例如,您已将 TableView 添加到 UIViewController(或除 UITableViewController 之外的任何 View Controller ),那么您可以通过以下方式切换它:
func toggleEditing() {
self.editing = !self.editing
}
注意:tableView
是您的 UITableView 的名称。
实现 canMoveRowAtIndexPath
override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return true
}
实现 moveRowAtIndexPath
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
var itemToMove = tableData[fromIndexPath.row]
tableData.removeAtIndex(fromIndexPath.row)
tableData.insert(itemToMove, atIndex: toIndexPath.row)
}
关于objective-c - 重新排序 UITableView 中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945092/