单元格中的图像未出现在搜索结果中

Image in cell doesn't appear in search result

我有集合视图和 7 个单元格。当应用 运行 时,它显示 6 并且必须滚动才能查看第 7 个单元格。每个单元格都有一个图像,但在我滚动并查看第 7 个单元格之前,第 7 个单元格图像没有显示。如果我搜索第 7 个单元格,则不会出现来自第 7 个单元格的图像,而是使用第 6 个单元格图像,片刻之后它会显示原始图像。看起来它仍在加载,但如何在搜索后不使用第 6 个单元格图像在第 7 个中制作图像。

我使用 realm 来存储图像 url 并使用 haneke 来显示图像

private var database = [Magazine]()

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let magazineObject = database[indexPath.item]
    let imageUrl:NSURL = NSURL(string: magazineObject.image)!
     cell.displayImage.hnk_setImageFromURL(imageUrl, placeholder: nil, success: { (image) -> Void in
        cell.displayImage.image = image
        cell.activityIndicator.hidden = true
        cell.activityIndicator.stopAnimating()
        }, failure: { (error) -> Void in

    })
return cell
}

我的杂志 class 看起来像这样

import Foundation
import RealmSwift

class Magazine: Object { 
    dynamic var id = 0
    dynamic var pathDatabase = ""
    dynamic var image = ""
    dynamic var urlMagazine = ""
    dynamic var title = ""
    dynamic var progressBarDownload = 0
    dynamic var progressBarTitle = ""
    dynamic var statusDownload = 0
}

对于新的可见单元格,collectionview 重用创建但未显示的单元格对象。所以在你的 cellforitem 方法中,你应该初始化所有 uielements。

在您的代码中添加以下内容

cell.displayImage.image = nil; //or assign placeholder image if you have here.

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let magazineObject = database[indexPath.item]

    cell.displayImage.image = nil; //or assign placeholder image if you have here.

    let imageUrl:NSURL = NSURL(string: magazineObject.image)!
    cell.displayImage.hnk_setImageFromURL(imageUrl, placeholder: nil, success: { (image) -> Void in
        cell.displayImage.image = image
        cell.activityIndicator.hidden = true
        cell.activityIndicator.stopAnimating()
    }, failure: { (error) -> Void in

    })
    return cell
}