我制作了一个自定义单元格,它应该只有一个UIImageView
. 更改图像时,单元格应更改高度以适合图像:
import UIKit
import Eureka
public class FirebaseImageCell: Cell<UIImage>, CellType{
@IBOutlet weak var customImageView: UIImageView!
public override func setup() {
super.setup()
}
public override func update() {
super.update()
guard let image = row.value else { return }
customImageView.image = image
guard let cellWidth = UIApplication.shared.keyWindow?.frame.width else { return }
height = { cellWidth * ( image.size.height / image.size.width ) }
}
}
public final class FirebaseImageRow: Row<FirebaseImageCell>, RowType {
required public init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<FirebaseImageCell>(nibName: "FirebaseImageCell")
}
}
我创建这样的行:
let image = UIImage(named: "testImage")!
let testSection = Section("Test Section")
<<< FirebaseImageRow("firebaseImageRow") { row in
row.value = image
}
form +++ testSection
在某些时候,我想更改单元格中的图像,并且单元格应更改其高度以适合图像。在这里我更改图像:
func imageChange() {
guard let imageRow = form.rowBy(tag: "firebaseImageRow") as? FirebaseImageRow else { return }
let image = UIImage(named: "testImage2")
imageRow.value = image
imageRow.updateCell()
}
初始化表单时,单元格获得正确的高度,适合“testImage”,但图像更改后高度保持不变。
如何使单元格动态更改其高度?