好,我定期使用collectionview.reloadData()
以确保单元格图像在滚动时不会重复/重叠,但是(这是自定义的iMessage扩展名)在首次加载集合视图时,您只能看到第一行,前两个单元格重叠/不刷新。
通过这个方法,我的意思是在前面的标签上覆盖了另一个标签,即使执行此操作也不会重新加载:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
collectionView.reloadData()
}
我没有在这里放任何东西:
override func prepareForReuse() {
super.prepareForReuse()
}
滚动时,重复项消失了。我不知道如何停止这种最初的重复。这里发生了什么事?我这样创建单元格:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// get a reference to our storyboard cell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "stickerCell", for: indexPath as IndexPath) as! StickerCollectionViewCell
let sticker = stickerPack[indexPath.item]
sticker.frame.size = CGSize(width: collectionView.bounds.width/2, height: collectionView.bounds.width/2)
cell.addSubview(stickerPack[indexPath.item]) //add stickerview to cell
cell.animalName = (stickerPack[indexPath.item].sticker?.localizedDescription)!
stickerPack[indexPath.item].startAnimating()
return cell