【发布时间】:2020-05-01 17:50:08
【问题描述】:
我正在构建一个跟踪包裹的应用程序。 UICollectionView 中的每个单元格都包含包裹的名称和包裹的交付状态。我的集合视图的数据源是一个项目数组。
Item 类看起来像这样:
class Item {
var name: String
var carrier: String
var trackingNumber: String
var status: String //obtained via API get request at some point after initialization
}
我想实现两个功能:添加项目(并随后触发所有项目的更新)和仅触发所有项目更新的能力。这是我的 ViewController 的基本外观:
class PackagesController: UICollectionViewController, UICollectionViewDelegateFlowLayout {
var items: [Item]?
override func viewDidLoad() {super.viewDidLoad()}
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
//return an item cell
//Is this where I should make the API request?
}
}
我的问题是:
我应该在哪里发出 API 请求(以获得最大效率)?
如何根据用户的请求更新所有项目的信息(不确定循环通过项目数组是否会导致集合视图重新加载)?
我的代码当前的结构方式是否存在固有问题,或者是否有更好的方法来组织我的代码以达到预期目的?
【问题讨论】:
标签: ios swift api uicollectionview uicollectionviewcell