Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bigMOTOR/850984ff43a5a47fec2c94630f17a7f0 to your computer and use it in GitHub Desktop.
Save bigMOTOR/850984ff43a5a47fec2c94630f17a7f0 to your computer and use it in GitHub Desktop.
2021-01-30_Article_DataDrivenRxDatasources_3.swift
final class XibCell: UITableViewCell, ModelledCell {
@IBOutlet weak var valueLabel: UILabel!
var cellModel: CellViewModel? {
didSet {
guard let viewModel = cellModel as? XibCellViewModel else { return }
self.valueLabel.text = viewModel.value
}
}
}
extension XibCellViewModel: CellViewModel {
var cellViewClass: CellType {
return .nibType(name: "\(XibCell.self)")
}
}
struct XibCellViewModel: SelectableType {
let value: String
let onSelected: (() -> Void)?
}
extension XibCellViewModel: IdentifiableCellViewModel {
var identity: Int {
return value.hash
}
func isEqual(to: IdentifiableCellViewModel) -> Bool {
guard let to = to as? XibCellViewModel else { return false }
return value == to.value
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment