滚动时调整 UITableViewCell 图像的大小

UITableViewCell images are resized when scrolling

我在 cellForRowAtIndexPath 中使用 HanekeSwift 设置了 UITableViewCell 中的图像。我下面的代码有效,但是当我开始滚动列表时图像会调整大小。如何防止图像调整大小?

//Load pet image
var petImage : String = pet["pet_image"] as! String
var petUrl = NSURL(string: petImage)
var cellImageView = cell.imageView
cellImageView?.hnk_setImageFromURL(petUrl!, format: Format<UIImage>(name: "original")) 

这是我的截图:

首次加载:https://dl.dropboxusercontent.com/u/10131270/first-load.png

滚动后:https://dl.dropboxusercontent.com/u/10131270/after-scrolling.png

尝试将 cellImageView 上的 contentMode 属性 设置为 UIViewContentModeScaleAspectFit

根据@pnavk 的建议,解决方案如下:

//Load pet image
var petImage : String = pet["pet_image"] as! String
var petUrl = NSURL(string: petImage)
var cellImageView = cell.imageView
cellImageView?.contentMode = UIViewContentMode.ScaleToFill
cellImageView?.frame = CGRectMake(0, 0, 66, 66)
cellImageView?.hnk_setImageFromURL(petUrl!, placeholder: UIImage(named: "Star66"))

步骤 1 首先添加内容模式,例如 imgView.contentMode = .scaleAspectFit

步骤 2 给出框架,例如 imgView.frame = defaultVideoImgCellSize

步骤 3 然后将图像设置为 imageview 例如 imgView.image = img

注意 在将图像设置为 imageview 之前设置 contentMode 和 frame

整个例子

let imgView = UIImageView()
imgView.contentMode = .scaleAspectFit
imgView.frame = defaultVideoImgCellSize
imgView.image = img
cell.addSubview(imgView)