I am creating a UICollectionView with a custom layout.
3x4 horizontal scroll layout. I got a cell layout and page scrolling works fine.
My expected result looks something like this:

(available at http://www.tinyuploads.com/images/0EVQnT.png )
However, when scrolling, it seems that the wrong cells are being laid off, and instead, my actual result is this:

(available at http://www.tinyuploads.com/images/8lvJId.png )
Also, when I go back to the first page, “A” is no longer in the first position.
My data source and delegate methods are as follows:
#pragma mark - UIViewController Life Cycle - (void)viewDidLoad { [super viewDidLoad]; self.collectionView.backgroundColor = [UIColor colorWithWhite:0.25f alpha:1.0f]; self.alphabet = [NSMutableArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"X", @"Y", @"Z", nil]; self.colors = [NSMutableArray arrayWithObjects:[UIColor colorWithRed:(135/255.0) green:(175/255.0) blue:(88/255.0) alpha:1], [UIColor colorWithRed:(65/255.0) green:(124/255.0) blue:(185/255.0) alpha:1], [UIColor colorWithRed:(201/255.0) green:(189/255.0) blue:(64/255.0) alpha:1], nil]; [self.collectionView reloadData]; } #pragma mark - UICollectionView datasource - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ return self.alphabet.count; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ NSString *title = [self.alphabet objectAtIndex:indexPath.row]; UIColor *backgroundColor = [self.colors objectAtIndex:indexPath.row % 3]; CategoryCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CategoryCellIdentifier forIndexPath:indexPath]; cell.title.text = title; cell.backgroundColor = backgroundColor; [cell setNeedsLayout]; return cell; } #pragma mark - UICollectionViewDelegate - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"You touched: %d", indexPath.row); }
I doubt how I should think about sections. As you can see here, I have only one section containing all my items (contents of the alphabet).
Any help is appreciated.