RxSwift,移除带有动画的单元格
我在一个单元格中有一个自定义按钮,可以从可观察列表中删除项目RxSwift,移除带有动画的单元格,swift,rx-swift,Swift,Rx Swift,我在一个单元格中有一个自定义按钮,可以从可观察列表中删除项目 self.searchListViewModel.genericList.value.remove(at: index) 所有的逻辑都很好,但我需要一个删除单元格的动画 self.tableView.deleteRows(at: [IndexPath(row: index, section: 0)], with: .fade) 但现在,如果我试图同时使用这两种方法,应用程序会崩溃。很抱歉延迟。以下是rxswift中可设置动画的ta
self.searchListViewModel.genericList.value.remove(at: index)
所有的逻辑都很好,但我需要一个删除单元格的动画
self.tableView.deleteRows(at: [IndexPath(row: index, section: 0)],
with: .fade)
但现在,如果我试图同时使用这两种方法,应用程序会崩溃。很抱歉延迟。以下是rxswift中可设置动画的tableview示例
enum MySectionItem {
case a(presentable: APresentable)
case b(presentable: BPresentable)
case c(presentable: CPresentable)
}
extension MySectionItem: IdentifiableType, Equatable {
typealias Identity = String
var identity: Identity {
switch self {
case let .a(presentable):
return presentable.title //Something which can define uniqueness
case let .b(presentable):
return presentable.title
case let .c(presentable):
return presentable.title
}
}
}
对于SectionModel,也可以执行相同的操作
enum MySectionModel {
case a(title: String, items: [MySectionItem])
case b(title: String, items: [MySectionItem])
case c(title: String, items: [MySectionItem])
}
extension MySectionModel: AnimatableSectionModelType {
typealias Item = MySectionItem
var items: [Item] {
switch self {
case let .a(title: _, items: items),
let .b(title: _, items: items),
let .c(title: _, items: items):
return items.map { $0 }
}
}
var identity: String {
switch self {
case let .a(title: title, items: _),
let .b(title: title, items: _),
let .c(title: title, items: _):
return title
}
}
init(original: MySectionModel, items: [Item]) {
switch original {
case let .a(title: title, items: _):
self = .a(title: title, items: items)
case let .b(title: title, items: _):
self = .b(title: title, items: items)
case let .c(title: title, items: _):
self = .c(title: title, items: items)
}
}
}
为此,必须使用AnimatableSectionModel。数据源的插入或删除将与此相关。RxDataSourcesHi Aks您能给我举个例子吗,我应该如何使用它,找不到任何例子,谢谢。