Dopiero po raz drugi używam UICollectionView i być może odgryzłem więcej, niż jestem w stanie przeżuć, ale mimo to:
Implementuję UICollectionView (myCollectionView), który używa niestandardowych UICollectionViewCell, które mam podklasę. Komórki podklasy (FullReceiptCell) zawierają UITableView i mają rozmiar kontrolera widoku. Próbuję zezwolić na przewijanie w poziomie między FullReceiptCells.
Podklasa UICollectionViewController, która zawiera myCollectionView, jest wypychana do stosu kontrolera nawigacji. Obecnie Loas myCollectionView i przewijanie w poziomie są włączone. Jednak żadne komórki nie są widoczne. Potwierdziłem to
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
został uruchomiony i zwraca liczbę całkowitą większą niż 0. Potwierdziłem również, że delegat myCollectionView i źródło danych są prawidłowo ustawione w IB do podklasy UICollectionViewController.
Sposób ładowania komórek:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
nie jest wezwany.
Oto miejsce, w którym wypycham UICollectionViewController i moją metodę viewDidLoad w ramach tego kontrolera (UWAGA: initWithBill jest zastąpieniem normalnego inicjatora):
W poprzednim pliku ViewControllers .m:
FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill];
test.title = @"Review";
[self.navigationController pushViewController:test animated:YES];
W 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];
Jakieś wskazówki, dlaczego nie jest nazywany?