【发布时间】:2017-03-06 22:45:36
【问题描述】:
我制作了一个自定义单元格,它应该只有一个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”,但图像更改后高度保持不变。
如何让单元格动态改变高度?
【问题讨论】:
-
你有没有解决这个问题?
标签: ios swift eureka-forms