gpt4 book ai didi

表格 View 中的 Swift Uicollectionview

转载 作者:行者123 更新时间:2023-11-28 07:31:09 25 4
gpt4 key购买 nike

我在帖子对象数组中有一个图像 url 数组我想在 TableView 中显示此帖子数组并将图像显示为 TableView 中的 Collection View 。我怎样才能enter image description here做吗?我厌倦了使用 int i 作为指示器,但它不起作用。

这是代码

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "HomeCell", for: indexPath) as! HomeTableViewCell
cell.postsText.text = postLists[indexPath.row].postText
i = indexPath.row
return cell
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return (postLists[i].imageUrlList?.count)!
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ImageCell", for: indexPath) as! PhotosCollectionCell
let url = postLists[i].imageUrlList![indexPath.row]
let imgUrl = URL(string: url)
URLSession.shared.dataTask(with: imgUrl!, completionHandler: { (data, response, error) in
if error != nil {
// if download hits an error, so lets return out
print(error)
return
}
// if there is no error happens...
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { // in half a second...
cell.postPhoto.image = UIImage(data: data!)
}
}).resume()
return cell
}

最佳答案

在你非常确定之前,永远不要强行包装可选的。 (我也可以评论,但我想添加更多不适合评论的细节,所以请原谅)

我能看到的另一件事是使用 indexPath.itemcollectionView不是indexPath.row两者都是一样的,但这是我一直遵循的标准。

您没有调用 URLSession.data后台线程中的任务。始终建议这样做。我的建议是您应该使用一些第三方库,例如 SDWebIamge,这将有助于您缓存已下载的图像。

Wy 崩溃:

我看到的是由于您的变量 i 导致的崩溃在你的代码中 postLists[i].

你应该做什么

内部

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

你可以像这样为你的 Collection View 设置标签

cell.yourCollectionViewObject.tag = indexPath.row

并替换

    let url =  postLists[i].imageUrlList![indexPath.row]

    let url =  postLists[collectionView.tag].imageUrlList![indexPath.row]

希望对你有帮助

关于表格 View 中的 Swift Uicollectionview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603981/

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