【问题标题】:How to achieve swipe right to complete (Todo List)如何实现向右滑动完成(待办事项列表)
【发布时间】:2015-11-15 12:36:55
【问题描述】:

我正在开发一个待办事项列表应用程序,现在我可以使用这些代码来实现向左滑动删除

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
    let delete = UITableViewRowAction(style: .Normal, title: "Delete") { action, index in
        print("Delete button tapped")
    }
    delete.backgroundColor = UIColor.redColor()
    return [delete]
}

而且我想我搜索了整个互联网,但这些解决方案都不能同时正确地完成工作并在我身上正常工作。我正在使用 swift 2.0,Xcode 7 beta 5。

以前有人做过吗?

【问题讨论】:

标签: swift uitableview swipe swift2


【解决方案1】:

使用提交编辑风格

 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    let thisTask = fetchedResultsController.objectAtIndexPath(indexPath) as! TaskModel

    if thisTask.completed ==  true {thisTask.completed = false}
    else {thisTask.completed = true}
    (UIApplication.sharedApplication().delegate as! AppDelegate).saveContext()
}

我正在使用 CoreData 存储我的信息,我存储的其中一件事是它是否已完成,当用户在 tableview 上向右滑动时,它会将已完成更改为 true,我有两个部分,一项用于未完成的任务,一项用于已完成的任务

【讨论】:

  • 我删除了let thisTask = fetchedResultsController.objectAtIndexPath(indexPath) as! TaskModel if thisTask.completed == true {thisTask.completed = false} else {thisTask.completed = true} (UIApplication.sharedApplication().delegate as! AppDelegate).saveContext(),但它不起作用
  • 你需要 objectAtIndexPath 因为它告诉程序要删除哪个
【解决方案2】:

它认为这个项目可以帮助你进一步......

SBGestureTableView: Swift UITableView 子类,支持在邮箱中滑动行和长按移动行。

如果你不想使用这个类。您可以在源代码中看到,您首先需要确定用户是从左到右还是从右到左滑动。然后从那里出发。

【讨论】:

  • 我试过这个。很多语法错误和未知错误,我什至无法运行它。
  • 我下载了同样运行 xcode 7 和 swift 2 的最新版本,它正在工作:-)
  • 您使用哪个测试版? @彼得
  • 你在运行哪个分支(SBGestureTableView)?你点击了update to latest Swift syntax button吗?
  • 是的。主要分支。不,我没有转换任何东西。 Xcode 也没有问。
【解决方案3】:

我终于成功地将SBGestureTableView 转换为 swift 2.0 语法,并在github.com/theniceboy/SBGestureTableView/tree/swift-2.0 上发布了它。但我还是要谢谢你们!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-03
    • 2020-12-21
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    相关资源
    最近更新 更多