单元格中的图像未出现在搜索结果中
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
}
我有集合视图和 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
}