gpt4 book ai didi

ios - 如何使用 RxSwift 交替注册显示 2 个自定义单元格

转载 作者:搜寻专家 更新时间:2023-11-01 06:36:16 24 4
gpt4 key购买 nike

我的 ThirdViewController 在一个 Xib 文件中,它有一个 tableView。我在另一个 xib 文件中也有 2 个单元格,我想用 RxSwift 交替显示 2 个自定义单元格。这该怎么做。这是我的代码:

import UIKit
import RxSwift
import RxCocoa

class ThirdViewController: UIViewController {

@IBOutlet weak var tableView: UITableView!

let items: Variable<[String]> = Variable(["Test 2", "Test 3", "Test 1", "Test 4", "Test 5"])

let disposeBag = DisposeBag()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

tableView.register(UINib(nibName: "LeftTableViewCell", bundle: nil), forCellReuseIdentifier: LeftTableViewCell.reuseIdentifier)
tableView.register(UINib(nibName: "RightTableViewCell", bundle: nil), forCellReuseIdentifier: RightTableViewCell.reuseIdentifier)

items.asObservable().bindTo(tableView.rx.items(cellIdentifier: LeftTableViewCell.reuseIdentifier, cellType: LeftTableViewCell.self)) { row, data, cell in
cell.data = data
}.addDisposableTo(disposeBag)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

最佳答案

items.asObservable()
.bindTo(tableView.rx.items) { (tableView, row, element) in
let indexPath = IndexPath(row: row, section: 0)

if row % 2 == 0 {
// or some other logic to determine which cell type to create

let cell = tableView.dequeueReusableCell(withIdentifier: LeftTableViewCell.reuseIdentifier, for: indexPath) as! LeftTableViewCell
// Configure the cell
return cell
}
else {
let cell = tableView.dequeueReusableCell(withIdentifier: RightTableViewCell.reuseIdentifier, for: indexPath) as! RightTableViewCell
// Configure the cell
return cell
}

}
.disposed(by: disposeBag)

关于ios - 如何使用 RxSwift 交替注册显示 2 个自定义单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com