我有一个 uitableviewcontroller,我正在尝试使用设置为 uimageview 的图像填充单元格(类似于 Facebook 帖子)。还有其他标签和自动布局用于定义它们在 tableviewcell 内的位置。
我正在使用 Kingfisher 库来异步下载图像。问题是 uiimageview 不知道正在下载的图像的高度,因此它使用 Aspect fit 根据 uiimageview 高度设置图像。当我为高度约束创建一个约束 IB 出口并尝试以编程方式设置 uiimageview 的高度时,行为仍然相同,但它在滚动时会发生变化,即 imageview 的大小会根据图像大小增大或缩小。
请指导有关如何使用自动布局在 uitableview 单元内异步加载图像的一般原则,以便实现所需的加载。我无法先验地知道图像的高度。
let imageArr = post.postMessage!.imageUrl!.characters.split{$0 == " "}.map(String.init)
self.postImageView.kf_setImageWithURL(NSURL(string: imageArr[0])!,
placeholderImage: nil,
optionsInfo: nil,
progressBlock: { (receivedSize, totalSize) -> () in
print("Download Progress: \(receivedSize)/\(totalSize)")
},
completionHandler: { (image, error, cacheType, imageURL) -> () in
self.imageHeightConstraint.constant = image!.size.height
}
)