我来这里是因为我的 UICollectionView 有一个很奇怪的问题。
Imgur 专辑所有屏幕我想分享:http://imgur.com/a/v3sox
首先,这是我的应用毫无问题的样子:相册的图片 2。
请注意右上角的刷新按钮,这是给我带来问题的按钮。
当我快速向下滚动 UICollectionView 并在 Collection View 仍在滚动时按“刷新”时,我得到了不属于任何人的“剩余单元格”,只是留在屏幕上。 (例如:相册的图片 1)
我不明白发生了什么,因为在我的刷新方法中我有:
- (void)refreshData
{
//A bunch of code before I reset the data
dispatch_async(dispatch_get_main_queue(), ^{
//Reset data
currentProjects = nil;
[self.projectsCollectionView reloadData];
//Some other stuff concerning the little "Chargement..." view
};
}
然后单元格继续留在我屏幕上的每个文件夹中,所以如果我选择另一个文件夹,我将得到相册的图像 3(注意最后 4 个单元格的标签,它们混淆了,因为之前的单元格在不应该出现在屏幕上时仍在屏幕上。)
有没有人知道可能导致这种情况的原因?非常感谢您的宝贵时间
P.S: 对不起,我把所有的屏幕都放在一个相册里,不能发布超过 2 个链接,所以我不得不即兴创作
最佳答案
刚刚也遇到了同样的问题。我通过修改 UICollectionViewCell
解决了这个问题。
(注意:我的代码是使用 MonoTouch 的 c#)。
在单元格每次创建对象之前。即。
textView = new UITextField()
{
BackgroundColor = UIColor.Clear,
TextColor = UIColor.LightGray,
Text = Title
};
修复它,检查对象,并相应地更新它。
if (textView == null)
{
textView = new UITextField()
{
BackgroundColor = UIColor.Clear,
TextColor = UIColor.LightGray,
Text = Title
};
}
else
textView.Text = Title;
现在,当在 CollectionView 上调用重新加载数据时,它会正确重新加载。
关于ios - UICollectionView reloadData 幽灵细胞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17444541/