gpt4 book ai didi

iOS:Tableview Begin updates 从不播放动画

转载 作者:行者123 更新时间:2023-11-28 07:07:32 25 4
gpt4 key购买 nike

当用户长按单元格并确认更改时,我编写了一些代码来从后端和本地数据存储中删除帖子。但是 tableview 不会更新。我已在我的代码中设置断点并执行了 tableView 操作代码,为什么我的行没有从 View 中删除?

let alertView = UIAlertController(title: "Really?", message: "Are you sure you want to delete this post? Once you do it will be gone forever.", preferredStyle: .Alert)
alertView.addAction(UIAlertAction(title: "Delete Post", style: UIAlertActionStyle.Default, handler: { (alertView:UIAlertAction!) -> Void in
let p = post.getRawPost()
p.deleteInBackgroundWithBlock({ (deleted:Bool, error:NSError?) -> Void in
// Remove from the local datastore too
p.fetchFromLocalDatastore()
p.deleteInBackgroundWithBlock({ (deleted:Bool, error:NSError?) -> Void in
// Update the table view
self.tableView.beginUpdates()
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Left)
self.tableView.endUpdates()
})

})
}))

据我了解,beginUpdatesendUpdates 用于更新 tableView 的特定部分,而无需执行完整的 reloadData 调用来源。我在这里遗漏了什么吗?

UPDATE 我将 tableView 更新代码移至主线程,这会在调用 endUpdates 时产生崩溃。我的新代码如下所示,并在主线程上调用:

self.tableView.beginUpdates()
self.tableView.deleteRowsAtIndexPaths([NSIndexPath(forRow: indexPath.row, inSection: indexPath.section)], withRowAnimation: UITableViewRowAnimation.Automatic)
self.tableView.endUpdates()

最佳答案

将下面的代码片段包装在 MAIN THREAD 中:

self.tableView.beginUpdates()
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Left)
self.tableView.endUpdates()

编辑崩溃

p.deleteInBackgroundWithBlock({ (deleted:Bool, error:NSError?) -> Void in
// Remove from the local datastore too
p.fetchFromLocalDatastore()

// Delete the desired item from array
...
// Remove cell that the item belong to animated in main thread
dispatch_async(dispatch_get_main_queue(), {
// Update the table view
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Left)
})
})

关于iOS:Tableview Begin updates 从不播放动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com