【问题标题】:How to animate deleting cell from tableview (rxswift)?如何动画从表格视图(rxswift)中删除单元格?
【发布时间】:2019-03-27 12:36:24
【问题描述】:

当用户滑动单元格时,可以将其删除。但是,删除是在没有动画的情况下发生的。

我的 ViewController 中的部分代码:

override func viewDidLoad() {
        super.viewDidLoad()

        guard let foodCategoryDetailViewModel = foodCategoryDetailViewModel else { return }

        tableView.delegate = nil
        tableView.dataSource = nil

        foodCategoryDetailViewModel.foodsInSelectedCategory
            .bind(to: tableView.rx.items(cellIdentifier: FoodCategoryDetailTableViewCell.cellIdentifier, cellType: FoodCategoryDetailTableViewCell.self))
            { row, food, cell in
                cell.foodCategoryDetailCellViewModel = foodCategoryDetailViewModel.cellViewModel(forRow: row)
            }.disposed(by: disposeBag)

        tableView.rx.itemDeleted.subscribe(onNext: { indexPath in
            foodCategoryDetailViewModel.removeFoodFromApplication(atRow: indexPath.row)
        }).disposed(by: disposeBag)
    }

我的 ViewModel 中的部分代码:

class FoodCategoryDetailTableViewViewModel: FoodCategoryDetailTableViewViewModelType {
    var foodsInSelectedCategory: BehaviorRelay<[Food]>

    func removeFoodFromApplication(atRow row: Int) {
        if let food = getFood(atRow: row) {
            foodsInSelectedCategory.remove(at: row)
            //remove from core data   
          CoreDataHelper.sharedInstance.removeFoodFromApplication(foodName: food.name!)
        }
    }

如何从 tableView 动画删除过程?

【问题讨论】:

    标签: ios swift uitableview rx-swift


    【解决方案1】:

    为了使删除过程具有动画效果,您需要一个专门用于执行此操作的数据源。 RxSwift 中的默认数据源不是。

    最流行的库是 RxDataSources,它带来了一个完整的多节系统,用于动画表和集合视图,但如果您不想要复杂的东西,您可以轻松编写自己的。

    这是一个用于 RxSwift 的简单动画数据源示例,它使用 DifferenceKit 计算必须对哪些单元格进行动画开/关:(https://github.com/danielt1263/RxMultiCounter/blob/master/RxMultiCounter/RxExtensions/RxSimpleAnimatableDataSource.swift)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多