4

我来到这里是因为我的 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:对不起,我把所有的屏幕都放在一个相册里,不能发布超过 2 个链接,所以我不得不即兴发挥

4

2 回答 2

2

刚刚也有同样的问题。我通过修改UICollectionViewCell.

(注意:我的代码是使用 MonoTouch 的 c#)。

在单元格每次创建对象之前。IE。

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 上调用重新加载数据时,它会正确重新加载。

于 2013-11-28T10:17:21.797 回答
0

我曾经遇到过类似的问题。问题是我的自定义单元格一次又一次地创建子视图。

根据我的猜测,您应该更改标签的值,而不是在出队后重新创建它。

于 2013-11-27T09:35:31.980 回答