[英]UICollectionView reloadData ghost cells
我来这里是因为我的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个单元格的标签,它们混合在一起了,因为以前的单元格仍然在屏幕上不应该出现的时候显示。)
有谁知道可能导致这种情况的原因吗? 非常感谢您的时间
PS:对不起,我把所有屏幕都放在了一个相册中,不能发布两个以上的链接,所以我不得不即兴创作
也有同样的问题。 我通过修改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上调用重新加载数据时,它将正确地重新加载。
我曾经有过类似的问题。 问题是我的自定义单元一次又一次创建子视图。
根据我的猜测,您应该更改标签的值,而不是在出队后重新创建它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.