var imageUrlString: String? {
didSet {
guard let urlString = imageUrlString, let url = URL(string: urlString) else { return }
imgView.kf.setImage(with: url) { result in
switch result {
case.success(let value):
// 图片加载成功
print("图片加载成功")
self.updateCellHeight(with: value.image)
case.failure(let error):
// 图片加载失败
print("图片加载失败: \(error)")
}
}
}
}
func updateCellHeight(with image: UIImage) {
let imageRatio = image.size.height / image.size.width
let cellWidth = UIScreen.main.bounds.width
let cellHeight = cellWidth * imageRatio
//这里设置Cell本身的宽高 我这里设置的是contentView的宽高
self.contentView.frame.size.height = cellHeight
self.contentView.frame.size.width = cellWidth
//这里设置图片的高度 我这里使用xib文件拖的UIimageView
self.imgView.image = image
self.imgViewHeight.constant = cellHeight
self.layoutIfNeeded()
// 通知tableView重新计算行高
if let tableView = self.superview as? UITableView {
tableView.beginUpdates()
tableView.endUpdates()
}
}