尤里卡自定义行
Eureka custom row
我正在尝试在 Eureka 中创建一个自定义行,但我似乎找不到一个好的指南(对于像我这样的新手)来指导我并让我了解如何去做。
基本上,我想使用 XIB 创建下面的行。它包含 2 个标签和一个图像。谁能帮助我了解如何正确执行此操作?
或者至少给我指出一个像我这样的新手可以理解如何实现的地方:
谢谢。
这次没有得到社区的太多帮助,但我自己整理了一下,所以我会post在这里为其他像我这样的新手提供答案..
final class CartProductRow: Row<CartProductCell>, RowType {
required init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<CartProductCell>(nibName: "CartProductCell")
}
}
class CartProductCell: Cell<CartProduct>, CellType {
@IBOutlet weak var productImage: UIImageView!
@IBOutlet weak var productName: UILabel!
required init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func setup() {
super.setup()
selectionStyle = .none
productImage.contentMode = .scaleAspectFill
productImage.clipsToBounds = true
productName.font = .systemFont(ofSize: 18)
for label in [productName] {
label?.textColor = .gray
}
height = { return 97 }
}
func loadImage(url: String) {
let url = URL(string:url)
self.productImage.kf.indicatorType = .activity
self.productImage.kf.setImage(with: url, options: [.transition(.fade(0.9))])
}
override func update() {
super.update()
textLabel?.text = nil
guard let product = row.value else { return }
if let url = product.smallImageUrl {
loadImage(url: url)
}
productName.text = product.name
}
}
我正在尝试在 Eureka 中创建一个自定义行,但我似乎找不到一个好的指南(对于像我这样的新手)来指导我并让我了解如何去做。
基本上,我想使用 XIB 创建下面的行。它包含 2 个标签和一个图像。谁能帮助我了解如何正确执行此操作?
或者至少给我指出一个像我这样的新手可以理解如何实现的地方:
谢谢。
这次没有得到社区的太多帮助,但我自己整理了一下,所以我会post在这里为其他像我这样的新手提供答案..
final class CartProductRow: Row<CartProductCell>, RowType {
required init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<CartProductCell>(nibName: "CartProductCell")
}
}
class CartProductCell: Cell<CartProduct>, CellType {
@IBOutlet weak var productImage: UIImageView!
@IBOutlet weak var productName: UILabel!
required init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func setup() {
super.setup()
selectionStyle = .none
productImage.contentMode = .scaleAspectFill
productImage.clipsToBounds = true
productName.font = .systemFont(ofSize: 18)
for label in [productName] {
label?.textColor = .gray
}
height = { return 97 }
}
func loadImage(url: String) {
let url = URL(string:url)
self.productImage.kf.indicatorType = .activity
self.productImage.kf.setImage(with: url, options: [.transition(.fade(0.9))])
}
override func update() {
super.update()
textLabel?.text = nil
guard let product = row.value else { return }
if let url = product.smallImageUrl {
loadImage(url: url)
}
productName.text = product.name
}
}