Erst mein zweites Mal mit UICollectionView und vielleicht habe ich mehr abgebissen, als ich kauen kann, aber trotzdem:
Ich implementiere eine UICollectionView (myCollectionView), die benutzerdefinierte UICollectionViewCell verwendet, die ich in Unterklassen unterteilt habe. Die untergeordneten Zellen (FullReceiptCell) enthalten UITableViews und haben die Größe des Viewcontrollers. Ich versuche, ein horizontales Scrollen zwischen den FullReceiptCells zu ermöglichen.
Der untergeordnete UICollectionViewController, der myCollectionView enthält, wird auf einen Nav-Controller-Stack übertragen. Derzeit ist myCollectionView loas und horizontales Scrollen aktiviert. Es sind jedoch keine Zellen sichtbar. Ich habe das bestätigt
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
wurde ausgeführt und gibt eine Ganzzahl größer als 0 zurück. Ich habe außerdem bestätigt, dass der Delegat und die Datenquelle von myCollectionView in IB ordnungsgemäß auf den untergeordneten UICollectionViewController festgelegt sind.
Die Methode, mit der die Zellen geladen werden sollen:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
wird nicht aufgerufen.
Hier drücke ich den UICollectionViewController und meine viewDidLoad-Methode in diesen Controller (HINWEIS: initWithBill ist eine Überschreibung des normalen Initialisierers):
In der vorherigen ViewControllers .m-Datei:
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];
Gibt es einen Hinweis darauf, warum es nicht aufgerufen wird?