[英]UITableViewCell selected by swipe not by tap
I'm using RxSwift for binding UITableView to data source. 我正在使用RxSwift将UITableView绑定到数据源。 I want to select table cell in table view. 我想在表格视图中选择表格单元格。 Selection does not work by tap, but works well by swipe gesture. 选择不能通过点击进行,但通过滑动手势可以很好地进行。 What could be the problem? 可能是什么问题呢?
That's what I was truing to do: 那就是我一直想做的:
Here my code 这是我的代码
View Model 查看模型
import Foundation
import RxSwift
class ViewModel {
let selectItem: AnyObserver<String>
let didSelectItem: Observable<String>
let items: Observable<[String]>
init() {
let _selectItem = PublishSubject<String>()
self.selectItem = _selectItem.asObserver()
self.didSelectItem = _selectItem.asObservable()
items = TestAppData.getData()
}
}
ViewController ViewController
import UIKit
import RxSwift
import RxCocoa
class ViewController: BaseViewController {
@IBOutlet weak var dataTableView: UITableView!
var viewModel: ViewModel!
override func viewDidLoad() {
super .viewDidLoad()
setup()
}
private func setup(){
viewModel.items
.observeOn(MainScheduler.instance)
.bind(to: dataTableView.rx.items(cellIdentifier: "DataCell", cellType: UITableViewCell.self)) {
(_, dataValue, cell) in
cell.textLabel?.text = dataValue
cell.selectionStyle = .none
}
.disposed(by: disposeBag)
dataTableView.rx.modelSelected(String.self)
.bind(to: viewModel.selectItem)
.disposed(by: disposeBag)
}
}
TableView and TableViewCell settings: TableView和TableViewCell设置: RxSwift 4.1.2, RxCocoa 4.1.2 RxSwift 4.1.2,RxCocoa 4.1.2
Try this implementation 试试这个实现
dataTableView.rx.itemSelected
.subscribe(onNext: { [unowned self] indexPath in
//DO something with cell
}).disposed(by: disposeBag)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.