gpt4 book ai didi

ios - 如何在从 REST 服务加载元素时将元素动态添加到 UICollectionView (Swift)

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

当元素从 REST 服务加载到内存中时,如何将它们动态添加到 UICollectionView 中?

我现在打电话

.reloadData()

在我的 UICollectionView IBOutlet 上,但我不认为这是最佳实践。

我试过使用 performBatchUpdate,但没能成功。

self.photoCollView.performBatchUpdates({
self.photoCollView.insertItemsAtIndexPaths(NSArray(object: photo) as [AnyObject])
}, completion: nil)

在这里,我试图将照片对象插入到 photoCollView 中,它是 UICollectionVIew 的 IBOutlet。

@IBOutlet var photoCollView: UICollectionView!

我会很感激一个例子。

最佳答案

我找到了解决方案。这是我与 UICollectionView 的连接

@IBOutlet var photoCollView: UICollectionView!

我的照片数组是照片对象的简单 Swift 集合

var photos = [Photo]()

这是一个简单的类

class Photo {
let name: String
let url: String

init(name:String, url:String){
self.name = name
self.url = url
}
}

这就是我在不使用 reloadData() 方法的情况下将元素添加到此 collectionView 的方式。

self.photoCollView.performBatchUpdates({
let lastItem = self.photos.count
self.photos.append(photo)
let indexPaths = let indexPaths = map(lastItem..<self.photos.count)
{
NSIndexPath(forItem: $0, inSection: 0)
}
, completion: nil)

不幸的是,我对 Swift 语言还很陌生,所以我不知道到底发生了什么。但据我所知,我在添加新元素之前坚持数组计数。然后我用两个参数调用 map,旧计数和新计数。在 map 闭包内一个新的 NSIndexPath已创建 inSection: 0 ,这就是我想要的,因为现在我只持有 1 个部分。那两件事我不明白是什么lastItem..<self.photos.count>forItem: $0

关于ios - 如何在从 REST 服务加载元素时将元素动态添加到 UICollectionView (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277413/

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