1

我正在尝试从视图控制器推送到集合视图控制器。

UICollectionViewLayout *collectionViewLayout = [[UICollectionViewLayout alloc] init];
xraylab *xraylabvc = [[xraylab alloc]initWithCollectionViewLayout:collectionViewLayout];
[self.navigationController pushViewController:xraylabvc animated:YES];

集合视图控制器将显示一个空白的黑屏。

numberOfSectionsInCollectionView返回 1

numberOfItemsInSection返回一个非零整数

我的问题是cellForItemAtIndexPath没有调用。

集合视图的委托和数据源已设置。

有什么建议么?

4

3 回答 3

1

numberOfItemsInSection应该执行return rowcount > 0_cellForItemAtIndexPath

检查Delegate和是datasource_collection viewset

于 2012-11-21T09:55:06.690 回答
1

我遇到了同样的问题,这让我发疯了,这是有效的代码。

UICollectionViewFlowLayout *CollLayout = [[UICollectionViewFlowLayout alloc] init];
UICollectionView *AttachmentsView = [[UICollectionView alloc] initWithFrame:CGRectMake(20, CurrentY, 640, 300) collectionViewLayout:CollLayout];
//AttachmentsView.backgroundColor = [UIColor whiteColor];
[AttachmentsView registerClass:[Cell class] forCellWithReuseIdentifier:@"ReuseCell"];
[VaribleStore SharedInstance].Attachments = [[NSMutableArray alloc] initWithObjects:[UIColor yellowColor],[UIColor redColor],[UIColor blueColor], nil];
AttachmentsView.delegate = self;
AttachmentsView.dataSource = self;
[self.ScrollView addSubview:AttachmentsView];
[AttachmentsView reloadData];

关键是要使用 UICollectionViewFlowLayout,原因是 UICollectionViewLayout 是一个抽象类,不能用于此目的。在我正常切换 ios 调用 cellForItemAtIndexPath 之后。

于 2013-09-06T15:44:51.350 回答
0

您不能按原样使用 UICollectionViewLayout。它是一个抽象基类,它必须是子类。如果您不想自己编写,可以将 UICollectionViewFlowLayout 用于类似网格的视图。

于 2012-12-06T19:52:45.000 回答