CHTCollectionViewWaterfallLayout删除单元格无法正常工作

时间:2015-03-12 14:53:49

标签: ios objective-c uicollectionview uicollectionviewlayout

我正在使用CHTCollectionViewWaterfallLayout作为我的UICollectionView的布局,我试图删除一个单元格。提供给我的单元格的所有数据都是从本地数据库加载的。要删除单元格,我将其从数据库中删除。接下来,我使用collectionView中的reloadData函数重新加载所有单元格。这似乎工作正常,除了一个小bug。这些图片中显示了错误(我删除了LifeStyleCard2):

删除前

Before deletion

删除后

After deletion

当我删除阴影时,问题变得不那么极端了:

After deletion - Dropshadow

然而,问题仍然是显而易见的。当我离开页面并导航回来时,问题就消失了,一切似乎都很好。这些是我对布局的设置:

CHTCollectionViewWaterfallLayout *layout =
(CHTCollectionViewWaterfallLayout *)self.collectionView.collectionViewLayout;

layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);
layout.headerHeight = 15;
layout.footerHeight = 10;
layout.minimumColumnSpacing = 20;
layout.minimumInteritemSpacing = 30;
self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
NSString *deviceType = [UIDevice currentDevice].model;

if([deviceType rangeOfString:@"iPad"].location != NSNotFound){
    layout.columnCount = 2;
}else{
    layout.columnCount = 1;
}
[self.collectionView setCollectionViewLayout:layout];

我完全清楚有一种方法可以从集合视图中删除一个单元格,但是这会更加混乱,因为它会将所有单元格的大小调整为默认大小。我几个小时以来一直在努力解决这个问题,我真的希望有人可以帮助我。

提前致谢!

1 个答案:

答案 0 :(得分:0)

答案显然是使用从collectionView中提供的删除方法删除单元格,然后重新加载数据。