Ios 一次调用多个DeleteRowsatindExpath
我有一个上传所有的任务,其中项目被上传到AWS S3。项目上载后,将向viewcontroller发出NSNotification以设置单元格动画(向左旋转效果),然后从表视图中删除该单元格:Ios 一次调用多个DeleteRowsatindExpath,ios,swift,uitableview,animation,cells,Ios,Swift,Uitableview,Animation,Cells,我有一个上传所有的任务,其中项目被上传到AWS S3。项目上载后,将向viewcontroller发出NSNotification以设置单元格动画(向左旋转效果),然后从表视图中删除该单元格: NSNotificationCenter.defaultCenter().postNotificationName("itemUploaded", object: nil, userInfo: ["item": item]) 表视图数据源由这些对象及其状态的列表管理。在notification obse
NSNotificationCenter.defaultCenter().postNotificationName("itemUploaded", object: nil, userInfo: ["item": item])
表视图数据源由这些对象及其状态的列表管理。在notification observer中,在swish动画(showExpandingButton)之后,我获取该项所属的单元格,并将其状态设置为.upload,这会将其从tableView数据源中删除
cell.showExpandingButton({ (completed) in
self.removeCells(item)
})
RemoveCells()然后从表视图中删除该单元格。然而,我面临的问题是,通知可以在几乎相同的时间触发,这意味着表视图数据源可以比删除单元格的函数更新得更快。有什么想法吗?我没有完全删除单元格,而是设置行高更改的动画,以防止由于动画延迟而导致数据源与表视图中的行数发生冲突。虽然不是一个完整的解决方案,但它适用于我当前的场景。是否使用表视图动画?如果不必这样做,我认为即使重复调用,使用重载数据也是安全的。如果必须这样做,则必须以某种方式合并通知调用,以便在runloop循环中只调用一次从表视图中删除单元格。我认为您可以查看NSNotificationQueue以帮助完成此操作。如果视图控制器彼此相关,请不要使用
NSNotification
。改为使用协议/委托或回调闭包。上载管理器不是视图控制器,所以我认为它需要是一个通知。NSNotificationQueue看起来很有趣-将查看这是否是一个选项,谢谢。