Apenas minha segunda vez usando UICollectionView's e talvez eu tenha mordido mais do que posso mastigar, mas mesmo assim:
Estou implementando um UICollectionView (myCollectionView) que usa UICollectionViewCell personalizado que criei como subclasse. As células subclassed (FullReceiptCell) contêm UITableView's e são do tamanho do viewcontroller. Estou tentando permitir a rolagem horizontal entre FullReceiptCells.
A subclasse UICollectionViewController que contém myCollectionView está sendo enviada para uma pilha de controlador de navegação. Atualmente, myCollectionView loas e rolagem horizontal estão habilitados. No entanto, nenhuma célula é visível. Eu confirmei que
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
foi executado e está retornando um número inteiro maior que 0. Também confirmei que o delegado e a fonte de dados de myCollectionView estão configurados corretamente em IB para a subclasse UICollectionViewController.
O método em que as células devem ser carregadas:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
não está sendo chamado.
Aqui é onde eu empurro o UICollectionViewController e meu método viewDidLoad dentro desse controlador (NOTA: initWithBill é uma substituição do inicializador normal):
No arquivo ViewControllers .m anterior:
FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill];
test.title = @"Review";
[self.navigationController pushViewController:test animated:YES];
Em 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];
Alguma pista de por que não está sendo chamado?