通过滑动选择UITableViewCell而不是点击

时间:2018-05-28 12:41:05

标签: ios swift uitableview rx-swift

我正在使用RxSwift将UITableView绑定到数据源。我想在表格视图中选择表格单元格。选择不适用于点击,但通过轻扫手势很好地工作。可能是什么问题?

这就是我要做的事情:

  • 更新RxSwift,RxCocoa
  • 清洁项目
  • 删除派生数据
  • 尝试表格视图和表格视图单元格的设置组合

这是我的代码

查看模型

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

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和TableViewCell设置: enter image description here RxSwift 4.1.2,RxCocoa 4.1.2

1 个答案:

答案 0 :(得分:0)

尝试此实现

dataTableView.rx.itemSelected
            .subscribe(onNext: { [unowned self] indexPath in
                //DO something with cell
            }).disposed(by: disposeBag)