2016-10-08 13 views
0

画像キャッシュにhanekeを使用しています。UITableビュー用に画像を設定すると、サーバーを呼び出して画像を取得し、 。しかし、サーバー呼び出しの遅延が原因でイメージ1の行イメージが2行目に配置されてしまい、間違っていることがあります。このシナリオでは、UItableViewCellを処理するためのより良い方法を提案してください。細胞調製のためのUItableViewで設定された画像が、サーバーから画像を取得するときに別の行に配置されずに設定される

コードスニペットは:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
let contact = searchedResults[indexPath.row] 
let cell = tableView.dequeueReusableCellWithIdentifier("ConversationContactCell", forIndexPath: indexPath) as! ConversationContactCell 
cell.contactImage.image = nil 
ImageCache.getInstance()?.getUserImage(contact.contactImageURI, gender: contact.contactGender, imageRetrievalHandler: { (image) in 
    cell.contactImage.image = image 
}) 
cell.contactName.text = contact.contactName 
return cell 

}

+0

あなたが試したコードを表示することができます –

+0

あなたのセルを作成するためのコードと、セル自体を投稿してください。 – BJHStudios

+0

セル準備用コードスニペット: –

答えて

0

これは、細胞がデキューされたとき、細胞の画像は、インターネットからのダウンロードが終了したとき、あなたのイメージが更新され、その後、再利用なっているように聞こえます。

あなたはそうのようなあなたのConversationContactCellクラスで画像をクリアする必要があります。

override func prepareForReuse() { 
    super.prepareForReuse() 
    contactImage.image = nil   
} 

これは、画像にセルが再利用されるたびにクリアされます。それが役に立ったら教えてください!