RxSwift 不识别 tableView modelSelected 没有长按
RxSwift not recognizing tableView modelSelected without long press
我正在尝试在我的 UITableView 上使用 RxSwift 调用 modelSelected
函数,但出于某种原因,与我在代码库中实现的任何其他 UITableView 不同,它无法识别我的点击手势,除非我按住 table 视图单元格。
我有一个 table 视图已连接到我的 .xib 文件。在那个 .xib 文件中,我将我的 table 视图嵌入到我的 UIViewController 中,并定义了原型 table 视图单元格的布局。
@IBOutlet private var tableView: UITableView!
这就是我的 viewDidLoad
功能。
viewModel.modelArray
.bind(to: tableView.rx.items(cellIdentifier: CustomTableViewCell.reuseIdentifier, cellType: CustomTableViewCell.self)) { row, element, cell in
// Assign cell UI properties
}
.disposed(by: disposeBag)
tableView.rx.modelSelected(ModelClass.self)
.subscribe(onNext: { [weak self] model in
// Respond to cell tap
})
.disposed(by: disposeBag)
这里有什么我可能遗漏的吗?
在深入研究并与 RxSwift 团队交谈后,我设法找到了这个问题的根本原因:此视图控制器上存在冲突的 UIGestureRecognizer。
我已将它分配给此视图控制器的 view
组件,这最终会干扰 modelSelected
功能的点击手势。因此,虽然我的 table 视图的 modelSelected
功能不一定会被忽略,但只有长按后才会被识别。
我正在尝试在我的 UITableView 上使用 RxSwift 调用 modelSelected
函数,但出于某种原因,与我在代码库中实现的任何其他 UITableView 不同,它无法识别我的点击手势,除非我按住 table 视图单元格。
我有一个 table 视图已连接到我的 .xib 文件。在那个 .xib 文件中,我将我的 table 视图嵌入到我的 UIViewController 中,并定义了原型 table 视图单元格的布局。
@IBOutlet private var tableView: UITableView!
这就是我的 viewDidLoad
功能。
viewModel.modelArray
.bind(to: tableView.rx.items(cellIdentifier: CustomTableViewCell.reuseIdentifier, cellType: CustomTableViewCell.self)) { row, element, cell in
// Assign cell UI properties
}
.disposed(by: disposeBag)
tableView.rx.modelSelected(ModelClass.self)
.subscribe(onNext: { [weak self] model in
// Respond to cell tap
})
.disposed(by: disposeBag)
这里有什么我可能遗漏的吗?
在深入研究并与 RxSwift 团队交谈后,我设法找到了这个问题的根本原因:此视图控制器上存在冲突的 UIGestureRecognizer。
我已将它分配给此视图控制器的 view
组件,这最终会干扰 modelSelected
功能的点击手势。因此,虽然我的 table 视图的 modelSelected
功能不一定会被忽略,但只有长按后才会被识别。