gpt4 book ai didi

ios - UICollectionViewController 会暂时显示错误的图像,然后刷新到正确的图像

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:54 24 4
gpt4 key购买 nike

我正在从 JSON 响应创建一个 Collection View 。 Json 响应具有高分辨率图像和大约 2000 张图像的数量。由于数据来自第三方,因此我无法控制图像大小。

实现:

JSON 示例:

{
"imagelist": [
{
"largeImage": "https://amazingphotos/01.jpg"
},
{
"largeImage": "https://amazingphotos/02.jpg"
},
}

访问 UICollectionViewController 中的 JSON:

Alamofire.request(.GET, dataURL)
.responseJSON { _, _, result in
if var json:JSON = JSON(result.value!){
self.imageURLs = json["imagelist"].arrayValue
self.collectionView?.reloadData()
}
}

在 cellForItemAtIndexPath 中,我将 URL 传递给单元格而不是图像本身。

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("imageCell", forIndexPath: indexPath) as! CollectionViewCell
cell.imageData = imageURLs[indexPath.row]

在自定义 Cell 中,我只是这样做:

var imageData:SwiftyJSON.JSON?{
didSet{
self.setup()
}
}

func setup(){
if let imageURLString = self.imageData?["largeImage"]{
let imageURL = NSURL(string: imageURLString.stringValue)
self.imageThumbnail.hnk_setImageFromURL(imageURL!)
}

问题:当我加载 Collection View 时,它会正确显示图像,一旦我开始滚动,它就会在新单元格上显示以前的图像几秒钟,然后刷新。

我曾多次使用 Collection View ,但从未处理过如此多的数据。请指教。时间差

最佳答案

滚动 Collection View 时,您看到的是一个重复使用的单元格,其中包含之前使用的图像。 UICollectionViewCell 有一个 prepareForReuse 函数,您可以使用它来将任何 subview 设置回默认状态。

override func prepareForReuse() {

myImageView.image = nil

super.prepareForReuse()
}

关于ios - UICollectionViewController 会暂时显示错误的图像,然后刷新到正确的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32745431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com