UITableViewCell images are resized when scrolling

1.2k Views Asked by At

I used HanekeSwift to set the images in my UITableViewCell in cellForRowAtIndexPath. My code below works but the images are resized when I start scrolling through the list. How can I prevent the images from resizing?

//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")) 

Here are my screenshots:

First load: https://dl.dropboxusercontent.com/u/10131270/first-load.png

After scrolling: https://dl.dropboxusercontent.com/u/10131270/after-scrolling.png

3

There are 3 best solutions below

1
On BEST ANSWER

Try setting the contentMode property on the cellImageView to UIViewContentModeScaleAspectFit

0
On

As suggested by @pnavk, here is the solution:

//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"))
0
On

Step 1 First add Content mode e.g imgView.contentMode = .scaleAspectFit

Step 2 Give the frame e.g imgView.frame = defaultVideoImgCellSize

Step 3 Then set image to imageview e.g imgView.image = img

Note Set contentMode and frame before setting image to imageview

Whole Example

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