我来到这里是因为我的UICollectionView有一个非常奇怪的问题。
Imgur相册所有屏幕我想分享:http://imgur.com/a/v3sox
首先,这是我的应用程序看起来没有问题:专辑的图像2。
请注意右上角的刷新按钮,这是给我带来问题的按钮。
当我非常快速地向下滚动UICollectionView,并在收集视图仍在滚动时按“刷新”,我有“细胞剩余”,它不属于任何人,只是停留在屏幕上。 (例如:专辑的图像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个链接,所以我不得不即兴发挥答案 0 :(得分: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上调用重载数据时,它会正确重新加载。
答案 1 :(得分:0)
我曾经遇到过类似的问题。问题是我的自定义单元格一次又一次地创建子视图。
根据我的猜测,您应该更改标签的值,而不是在出列后重新创建它。