我是 RxSwift 的新手,正在研究一些要测试的样本。在 RxSwift 的帮助下,我在 uitableview 上展示了一些数据。但是,当我尝试从 tableview 中删除任何项目并重新加载时。Observable 数组没有更新,并且由于最后一个项目的滚动崩溃。下面是代码,请帮助我知道我做错了什么。
self.itemArray = NSMutableArray(objects: "First Item","Second Item","Third Item","Fourth Item","Fifth Item","Sixth Item","Seventh Item","Eight Item","Nineth Item","Tenth Item","Eleventh Item","Twelveth Item","Thirtheenth Item","Fourtheenth Item","Fifteenth Item","Sixteenth Item","Seventhenth Item","First Item","Second Item","Third Item","Fourth Item","Fifth Item","Sixth Item","Seventh Item","Eight Item","Nineth Item","Tenth Item","Eleventh Item","Twelveth Item","Thirtheenth Item","Fourtheenth Item","Fifteenth Item","Sixteenth Item","Seventhenth Item")
var seqValue = Observable.just(self.itemArray)
seqValue
.bind(to: rxtableView.rx.items) { (tableView, row, seqValue) in
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell")!
cell.textLabel?.text = self.itemArray.object(at: row) as? String
cell.backgroundColor = .clear
return cell
}.disposed(by: disposeBag)
self.rxtableView.rx.itemDeleted
.subscribe(onNext: { [unowned self]indexPath in
self.itemArray.removeObject(at: indexPath.row)
seqValue = Observable.just(self.itemArray)
self.rxtableView.reloadData()
}).addDisposableTo(disposeBag)
使其成为 BehaviorSubject,即 -
var seqValue = BehaviorSuject.create(self.itemArray)
而不是 'seqValue = Observable.just(self.itemArray)' 做
seqValue.onNext(self.itemArray)
不需要调用 '.reloadData()'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句