我正在使用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
工作?