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

ios – UICollectionViewController会暂时向我显示错误的图像,然后刷新到正确的图像,第1张

概述我正在从 JSON响应创建一个集合视图. Json响应具有高分辨率图像和大约2000年的图像数量.由于数据来自第三方,我无法控制图像大小. 执行: JSON示例: { "imagelist": [ { "largeImage": "https://amazingphotos/01.jpg" }, { 我正在从 JSON响应创建一个集合视图. 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!)        }

问题:当我加载集合视图时,它会正确显示图像,一旦我开始滚动它就会在新单元格中显示我之前的图像几秒钟,然后刷新.

我多次使用集合视图但从未使用过如此多的数据.请指教.
TIA

解决方法 滚动收藏视图时所看到的是一个重复使用的单元格,其中包含上一次使用的图像. UICollectionVIEwCell有一个prepareForReuse函数,可用于将任何子视图设置回默认状态.

overrIDe func prepareForReuse() {    myImageVIEw.image = nil    super.prepareForReuse()}
总结

以上是内存溢出为你收集整理的ios – UICollectionViewController会暂时向我显示错误的图像,然后刷新到正确的图像全部内容,希望文章能够帮你解决ios – UICollectionViewController会暂时向我显示错误的图像,然后刷新到正确的图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1014386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存