gpt4 book ai didi

ios - CollectionView 没有显示任何项目

转载 作者:行者123 更新时间:2023-12-01 16:05:39 26 4
gpt4 key购买 nike

我不知道我做错了什么。

我有一个带有 collectionView 的 viewController。

我在 viewController 和 Storyboard 中设置了 collectionView 代表如下:

modelosCV.delegate = self
modelosCV.dataSource = self

我已经创建了所有 collectionView 方法:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return filtrados ? modelosFiltrados.count : modelos.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {



let cellModelos = collectionView.dequeueReusableCell(withReuseIdentifier: "modelo", for: indexPath) as! ModelosCollectionViewCell



print(filtrados ? modelosFiltrados[indexPath.row].icono : modelos[indexPath.row].icono)

let foto_modelo = filtrados ? modelosFiltrados[indexPath.row].icono : modelos[indexPath.row].icono

let modelo_nombre = filtrados ? modelosFiltrados[indexPath.row].nombre : modelos[indexPath.row].nombre
cellModelos.modelo_nombre.text = modelo_nombre

let url = URL(string: "https://j../iconos/"+foto_modelo)

UIImage.loadFrom(url: url!) { image in
cellModelos.modelo_icono.image = image

}


return cellModelos


}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {


let padding: CGFloat = 50
let collectionViewSize = collectionView.frame.size.width - padding

return CGSize(width: collectionViewSize/2, height: 242)
}

我正在从远程 JSON 源填充 collectionView:
func downloadJSONModelos(completed: @escaping () -> ()) {

var categoria = ""



let cat = self.defaults.string(forKey: "nueva_alarma_categoria")
if (cat == "Móviles"){
categoria = "3"
}
if (cat == "Tablets"){
categoria = "5"
}
if (cat == "Smartwatches"){
categoria = "7"
}
let marca_id = self.defaults.string(forKey: "nueva_alarma_marca_id")
let url = URL(string: "https:.....php?marca="+marca_id!+"&cat="+categoria)


URLSession.shared.dataTask(with: url!) { (data,response,error) in

print(data as Any)
print(response as Any)

if error == nil {
do {
self.modelos = try JSONDecoder().decode([Modelos].self, from: data!)


DispatchQueue.main.async {
completed()
}

}catch{

}
print(self.modelos)
}
}.resume()


}

应用程序正在接收输出中打印的 JSON 数组,但 collectionView 仍为空。

我错过了什么?

最佳答案

将此添加到您的 viewDidLoad :

yourCollectionView.register(UINib(nibName: "yourXibName", bundle: nil), forCellWithReuseIdentifier: "modelo")

并重新加载您的 collectionViewyourCollectionView.reloadData()JSON 将元素附加到数组的位置.

希望能帮助到你...

关于ios - CollectionView 没有显示任何项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61487377/

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