var posts = [Post]()
....
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath) as! FeedCollectionViewCell
cell.postTextView.text = posts[indexPath.item].caption
cell.postImageView.image = UIImage(named: "photoplaceholder.jpg")
let urlString = posts[indexPath.item].photoUrl
let url = URL(string: urlString)
let task = URLSession.shared.dataTask(with: url!){ data, reponse, error in
if error != nil {
print(error!)
} else{
DispatchQueue.main.async(execute: {
cell.postImageView.image = UIImage(data: data!)
})
}
}
task.resume()
return cell
}
}
我想显示最新帖子,而不是最旧的帖子。 对于tableview,post [indexPath.row] .caption给了我最新的帖子, 对于UICollectionView它没有,它给了我最老的帖子。我需要帮助来了解如何在其他人之前首先显示最新的帖子。
答案 0 :(得分:0)
UITableView
和UICollectionView
之间的数据顺序不应有任何差异,因此您应该调查为什么正在发生,而不是如何修复它在cellForItemAt
。
但要回答如何修复它;由于我发现您只有一个部分,因此您可以执行posts.reversed()[indexPath.row].caption
和posts.reversed()[indexPath.row].photoUrl