gpt4 book ai didi

ios - CollectionView 并不总是正确显示数据

转载 作者:行者123 更新时间:2023-11-28 16:14:01 28 4
gpt4 key购买 nike

我正在尝试使用自定义单元格实现 UICollectionView。设置是以下:

  • 4 个细胞
  • 如果我获得下载图像的数据 => 用该图像填充单元格的 imageView。
  • else:使用占位符。

图像的 PFFiles 保存在 imageFileDic:[String:PFFile] 中。

这是我的更新 cellForItemAtIndexPath:

   let collectionCell:SettingsCollectionViewCell =
collectionView.dequeueReusableCellWithReuseIdentifier("collectionCell",
forIndexPath: indexPath) as! SettingsCollectionViewCell


if indexPath.row < imageFileDic.count {


if let imageId = imageFileIds[indexPath.row] as? String {

if let imageData = imageFileDic[imageId]{

collectionCell.collectionViewImage.file = imageData
collectionCell.collectionViewImage.loadInBackground()

}

}
} else{

collectionCell.collectionViewButton.setImage(UIImage(), forState: .Normal)
collectionCell.collectionViewImage.image = UIImage(named: "CameraBild.png")

}

现在有时(1/5 次) 我的应用程序决定显示图像两次,或者在单元格 nr 的位置。 4.

在我的查询中,我总是在添加新数据之前删除字典和数组。

有什么想法吗?

编辑:这是我调用的PFQuery:

let imageQuery = PFQuery(className: "Images")
imageQuery.whereKey("sender", equalTo: objectID!)
imageQuery.addAscendingOrder("createdAt")
imageQuery.cachePolicy = .NetworkElseCache

imageQuery.findObjectsInBackgroundWithBlock { (objects, error) in
if error != nil {
createAlert(error!)
}
else{
if let objects = objects{


self.imageFileDic.removeAll()
self.imageFileIds.removeAll()

for object in objects{

if let id = object.objectId{
print("id found")
if let imageFile = object.objectForKey("imageFile") as? PFFile{

self.imageFileIds.append(id)
self.imageFileDic[id] = imageFile



if object == objects.last{
print(self.imageFileIds.count)
print(self.imageFileDic.count)

self.mainCollectionView.reloadData()
}

}
}

}
}
}
}

}

最佳答案

我认为你应该将图像更新到主线程

dispatch_async(dispatch_get_main_queue()) { 
collectionCell.collectionViewImage.file = imageData
collectionCell.collectionViewImage.loadInBackground()
}

关于ios - CollectionView 并不总是正确显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269873/

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