È solo la seconda volta che uso UICollectionView e forse ho morso più di quanto posso masticare ma comunque:
Sto implementando un UICollectionView (myCollectionView) che utilizza UICollectionViewCell personalizzati che ho sottoclasse. Le celle sottoclasse (FullReceiptCell) contengono UITableView e hanno le dimensioni del viewcontroller. Sto cercando di consentire lo scorrimento orizzontale tra FullReceiptCells.
L'UICollectionViewController sottoclasse che contiene myCollectionView viene inserito in uno stack del controller di navigazione. Attualmente, loas myCollectionView e lo scorrimento orizzontale sono abilitati. Tuttavia, nessuna cella è visibile. L'ho confermato
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
è stato eseguito e restituisce un numero intero maggiore di 0. Ho anche confermato che il delegato e l'origine dati di myCollectionView sono impostati correttamente in IB sulla sottoclasse UICollectionViewController.
Il metodo in cui devono essere caricate le celle:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
non viene chiamato.
Qui è dove inserisco UICollectionViewController e il mio metodo viewDidLoad all'interno di quel controller (NOTA: initWithBill è un override del normale inizializzatore):
Nel precedente file ViewControllers .m:
FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill];
test.title = @"Review";
[self.navigationController pushViewController:test animated:YES];
In 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];
Qualche indizio sul motivo per cui non viene chiamato?