単純に cellForRowAtIndexPath や willDisplayCell 内で画像のフェードイン処理を書いただけではcellが読み込まれるたびにフェードイン処理が走ってしまう。
↓
SDWebImageは表示した画像をキャッシュしてくれるので、
画像を表示する際、キャッシュ以外(ネットワーク)から取得した場合のみフェードインするようにすれば良い。
imageView.sd_setImageWithURL($0, placeholderImage: UIImage(named: "placeholderImage"), options: .CacheMemoryOnly, completed: { (image, error, type, url) in
if type == .None {
// キャッシュ以外から画像を取得した場合はフェードインで画像を表示
self.imageView.alpha = 0
UIView.animateWithDuration(0.5, animations: {
self.imageView.alpha = 1
})
}
})