gpt4 book ai didi

ios - 如何仅重新加载 collectionView 中的一个单元格?

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:58 25 4
gpt4 key购买 nike

我有一个 collectionView,但有两个问题。首先,滚动太慢了。我的 collectionView 从 url 中的 API 接收数据,如下所示:

enter image description here

这是我的代码:

extension ViewController: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if imageUrl.count >= 4 {
activity.stopAnimating()
activity.isHidden = true
}else{
DispatchQueue.main.async {
self.myCollectionView.reloadData()
}
}

return imageUrl.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = myCollectionView.dequeueReusableCell(withReuseIdentifier: "myViewCell", for: indexPath) as! myViewCell

if let url = NSURL(string: imageUrl[indexPath.row]){
if let data = NSData(contentsOf: url as URL){
cell.carImageView.contentMode = UIViewContentMode.scaleAspectFit
cell.carImageView.image = UIImage(data: data as Data)
}
}

cell.firstLabel.text = firstLabelArray[indexPath.row]

if secondLabelArray != []{
cell.secondLabel.text = secondLabelArray[indexPath.row]
}

return cell
}
}

我遇到的第二个问题是我只需要刷新 Collection View 中的第三个单元格。那是我的 secondLabel,但是当我尝试使用 myCollectionView.reloadData() 时,它会重新加载我所有的单元格。我需要每秒刷新第三个单元格。

最佳答案

要加载特定单元格,请使用以下命令:

let indexPath = IndexPath(item: 2, section: 0)
collectionView.reloadItems(at: [indexPath])

您正在 cellForItemAt 中加载图像,只需确保您没有在主线程上加载图像

您可以使用库来下载图像并缓存图像

https://github.com/SDWebImage/SDWebImage

https://github.com/Alamofire/AlamofireImage

关于ios - 如何仅重新加载 collectionView 中的一个单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53088649/

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