2

我正在使用RxSwift框架RxDataSources来设置表格视图:

let dataSource = RxTableViewSectionedAnimatedDataSource<AnimatableSectionModel<String, String>>(configureCell: { _, tableView, indexPath, item -> UITableViewCell in
       let cell = tableView.dequeueReusableCellwithIdentifier: "TestCell", for: indexPath)
       cell.configure()
       return cell
})

vm.cellViewModels
     .map({ [AnimatableSectionModel(model: "", items: $0)] })
     .bind(to: _view.tableView.rx.items(dataSource: dataSource))
     .disposed(by: bag)

我试图让我UISwipeActionsConfiguration工作UITableViewDelegate,并将委托设置为:

tableView.rx.setDelegate(self).disposed(by: bag)

同时将委托方法设置为:

extension UIViewController: UITableViewDelegate {
    func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
        let action = UIContextualAction(style: .normal, title: nil) { action, view, completion in
            
        }

        action.image = Images.shared.logo.resized(to: CGSize(width: 24, height: 24)).tintWithColor(.darkGray).withRenderingMode(.alwaysOriginal)
        action.backgroundColor = .clear

        let configuration = UISwipeActionsConfiguration(actions: [action])
        configuration.performsFirstActionWithFullSwipe = false

        return configuration
    }

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.bounds.size.width, height: 20))
        headerView.backgroundColor = UIColor.red
        return headerView
    }
}

标头被调用并按预期工作,这意味着应将委托设置正确。


在没有 RxSwift 的情况下执行此操作,适用于滑动操作。

有谁知道如何trailingSwipeActionsConfigurationForRowAt使用 RxDatasources,因为我只能开始viewForHeaderInSection工作?

4

0 回答 0