Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why SDWebImage do not show image in a cell after load?

I am using SDWebImage. In my table, each row has image and a label.

enter image description here

As you can see, image cannot be seen.

But when I go back to parent view controller, and come here again, they are shown.

enter image description here

The code I am using is:

[cell.imageView setImageWithURL:[NSURL URLWithString:serie.image] placeholderImage:[UIImage imageNamed:@"placeholder.png"]  options:SDWebImageRefreshCached];

So, where I am wrong?

like image 460
Burak Avatar asked Jan 12 '23 14:01

Burak


1 Answers

Answer: get/make a transparent png, and use it as your placeholder image.

Actually, it is not a bug with SDWebImage, but rather it's the nature of how UITableView works. SetImageWithURL, is an asynch process. So when your tableView delegate/datasource methods are called, the image isn't downloaded yet, so cellForRow doesn't have an image to display.

The reason it works when you navigate elsewhere then back, is because by then the image has been downloaded, and cellForRow gets called again, this time with an image to display.

like image 162
khanh.tran.vinh Avatar answered Jan 22 '23 04:01

khanh.tran.vinh