繁体   English   中英

UICollectionView reloadData鬼单元格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM