UITableViewCell, выбранный проведением не нажатием - PullRequest
0 голосов
/ 28 мая 2018

Я использую 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 голосов
/ 28 мая 2018

Попробуйте эту реализацию

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