【问题标题】:Add cell to favorites tableview with core data使用核心数据将单元格添加到收藏夹表视图
【发布时间】:2016-05-29 19:02:22
【问题描述】:

我有一个 iOS 应用程序,我想让人们在 tableview 单元格上滑动以将该单元格添加到收藏夹页面 tableview。

它必须使用核心数据,以便在应用退出后保存收藏夹。

任何帮助将不胜感激!

这是迄今为止我对单元格滑动操作所做的:

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

    let favorite = UITableViewRowAction(style: .Normal, title: "Favorite") { (action, indexPath) in
        // share item at indexPath
        self.editing = false
        print("Favorited \(indexPath.row)")


    }

    favorite.backgroundColor = UIColor.greenColor()

    return [favorite]
}

这是我收藏页面的代码。

var favorites : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()
    favorites = vars.favs
    self.tableView.reloadData()
}



override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return favorites.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
    let object = favorites[indexPath.row]
    cell.textLabel!.text = object 
    return cell
}

这是如何添加收藏夹的图片:

【问题讨论】:

  • 你能告诉我们你到目前为止做了什么吗?
  • 目前我只有单元格的滑动动作设置。
  • 如果你有一个tableview,你必须有一些tableviews的功能。向我们展示这些
  • 我会在几分钟内更新问题
  • Penatheboss 初始表格视图是静态的,没有与之关联的代码

标签: swift uitableview favorites


【解决方案1】:

如果您需要将收藏夹列表作为字符串保存在您的应用中,您可以简单地使用 NSUserDefaults 而不是 Core Data。

要保存收藏夹数组:

let favorite = UITableViewRowAction(style: .Normal, title: "Favorite") { (action, indexPath) in
    var favorites : [String] = []
    let defaults = NSUserDefaults.standardUserDefaults()
    if let favoritesDefaults : AnyObject? = defaults.objectForKey("favorites") {
        favorites = favoritesDefaults! as [String]
    }

    favorites.append(tableView.cellForRowAtIndexPath(indexPath).textLabel!.text)
    defaults.setObject(favorites, forKey: "favorites")
    defaults.synchronize()
}

要读取收藏夹页面中的收藏夹数组:

var favorites : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()

    let defaults = NSUserDefaults.standardUserDefaults()
    if let favoritesDefaults : AnyObject? = defaults.objectForKey("favorites") {
        favorites = favoritesDefaults! as [String]
    }

    self.tableView.reloadData()
}

【讨论】:

  • 这也能传输图片吗?
  • @Jacksmackod 您可以保存图片的路径,该路径将存储在磁盘的其他位置。即使有核心数据,也不建议将图像直接保存在其中。见stackoverflow.com/a/30672362/1420793。起初我想到的是,您只需要保存一个 ID 或类似的东西,它引用了收藏的单元格的内容。您的单元格是否只有图像或更复杂的数据结构?如果它只是一个图像,上面的方法仍然有效。但是,如果您想保存更多数据,那么核心数据确实是更好的选择。
  • 我希望单元格保留文本图片及其操作(更改视图)
  • 对不起,我不能让它工作。您能否也为它编写实现?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 2014-05-22
相关资源
最近更新 更多