gpt4 book ai didi

ios - ios7 上的 UICollectionViewData validateLayoutInRect 断言失败

转载 作者:IT王子 更新时间:2023-10-29 08:04:41 26 4
gpt4 key购买 nike

在 iOS7 上 UICollectionViewData validateLayoutInRect 断言失败。

我正在尝试使用 for 循环一个接一个地删除所有 UICollectionView 项目;我在下面发布了我的代码。我使用 deleteItemsAtIndexPaths 删除了 UICollectionView 项。它在 iOS6 上完美运行,但在 iOS7 中崩溃,但出现以下异常:

Assertion Failure in UICollectionViewData validateLayoutInRect

我使用 indexPathcollectionArray 然后从 self.collectionView 中删除对象,一个一个地删除。当我删除第 4 个对象时,它会在 iOS7 上引发 Assertion failure。我在这里使用 performBatchUpdates

请帮助我在 iOS7 中获得正确的结果。分享正确的代码。提前致谢。

try  {    
for (int i=count-1; i>=0; i--) {
[self.collectionView performBatchUpdates:^(void){
[collectionArray removeObjectAtIndex:i]; // First delete the item from you model
[self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:i inSection:0]]];
} completion:nil];
[self.collectionView reloadData];
}
}
@catch (NSException *exception) {
}
@finally {
}

最佳答案

我实际上遇到过一次崩溃,不是因为我为多个部分或部分中的项目返回零,而是因为我为多个 Collection View 重用了这样的流布局:

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
Collection1 = [[UICollectionView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 50.0f) collectionViewLayout:flowLayout];
[Collection1 setDataSource:self];
[Collection1 setDelegate:self];
[self.view addSubview:Collection1];

Collection2 = [[UICollectionView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, self.view.frame.size.height) collectionViewLayout:flowLayout];
Collection2.backgroundColor = [UIColor whiteColor];

相反,如果我为每个 UICollectionView 创建一个新的流布局,我就可以避免这种崩溃。希望这可能对某人有所帮助

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
Collection1 = [[UICollectionView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 50.0f) collectionViewLayout:flowLayout];
[Collection1 setDataSource:self];
[Collection1 setDelegate:self];
[self.view Collection1];

UICollectionViewFlowLayout *flowLayoutVert = [[UICollectionViewFlowLayout alloc] init];
[flowLayoutVert setScrollDirection:UICollectionViewScrollDirectionVertical];
Collection2 = [[UICollectionView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, self.view.frame.size.height) collectionViewLayout:flowLayoutVert];

关于ios - ios7 上的 UICollectionViewData validateLayoutInRect 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19443204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com