这只是我第二次使用 UICollectionView,也许我有点吃不消了,但不管怎样:
我正在实现一个 UICollectionView (myCollectionView) ,它使用我已子类化的自定义 UICollectionViewCell。子类单元格(FullReceiptCell)包含 UITableView 的并且是 viewcontroller 的大小。我尝试允许在 FullReceiptCell 之间进行水平滚动。
包含 myCollectionView 的子类 UICollectionViewController 被推送到导航控制器堆栈上。当前,启用了 myCollectionView loas 和水平滚动。但是,没有可见的单元格。我已经证实了
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
正在返回一个大于0的整数。我还确认了 myCollectionView 的委托和数据源在 IB 中正确地设置为子类 UICollectionViewController。
要加载单元格的方法:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
没有被召唤。
下面是我在该控制器中推送 UICollectionViewController 和 viewDidLoad 方法的地方(注意: initWithBill 是普通初始化器的覆盖) :
在前面的 ViewControllers.m 文件中:
FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill];
test.title = @"Review";
[self.navigationController pushViewController:test animated:YES];
在 FullReceiptViewController.m:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self.myCollectionView registerClass:[FullReceiptCell class] forCellWithReuseIdentifier:@"FullReceiptCellIdentifier"];
self.myCollectionView.pagingEnabled = YES;
// Setup flowlayout
self.myCollectionViewFlowLayout = [[UICollectionViewFlowLayout alloc] init];
[self.myCollectionViewFlowLayout setItemSize:CGSizeMake(320, 548)];
[self.myCollectionViewFlowLayout setSectionInset:UIEdgeInsetsMake(0, 0, 0, 0)];
[self.myCollectionViewFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.myCollectionViewFlowLayout.minimumLineSpacing = 0;
self.myCollectionViewFlowLayout.minimumInteritemSpacing = 0;
[self.myCollectionView setCollectionViewLayout:myCollectionViewFlowLayout];
//testing to see if the collection view is loading
self.myCollectionView.backgroundColor = [UIColor colorWithWhite:0.25f alpha:1.0f];
有没有什么线索,为什么没有被调用?