objective-c - 重新排序 UITableView 中的单元格

标签 objective-c uitableview

我有一个包含 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/

相关文章:

objective-c - 我可以为 NSFileHandleReadCompletionNotification 使用较小的缓冲区吗?

ios - 健康栏的 CCProgressNode 不工作

ios - 使用 reuseIdentifier 调用 super.tableView(tableView : UITableView, cellForRowAtIndexPath...

ios - 如何正确折叠我的单元格?

ios - Swift - 管理任务以填充 UITableView

objective-c - 使用 C++ 方法作为 ObjC 选择器?

iphone - UITableView 不响应选择

ios - 错误域=NSURLErrorDomain Code=-1017 "The operation couldn’ t be

uitableview - 在手动创建的部分中对核心数据 tableView 行进行分组

ios - 具有不同 UITableViewCells 和动态内容的 UITableView