カスタムセルを作成しました。これには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」にfittetを取得しますが、画像が変更された後、高さが同じまま。
どのようにセルの高さを動的に変更できますか?