我来到这里是因为我的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个链接,所以我不得不即兴发挥
最佳答案 也遇到了同样的问题.我通过修改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上调用重载数据时,它会正确重新加载.