Per chi ha dimestichezza con l’UITableView di sicuro non ha problemi a implementare i metodi del UICollectionView. Praticamente questo oggetto è l’insieme di una UIScrollView che è la superView di se stessa e di una UIView che sono le celle. Creiamo un progetto su Xcode Single-View-Application. Nello storyboard troviamo UICollectionView nell pannello di tutti gli oggetti e trasciniamolo nella view. (! Attenzione a non trascinare UICollectionViewController) . Selezioniamo la cella e inseriamo un identificatore “Cell” nell pannello a destra. Fatto questo andiamo nel file del intestazione e creiamo un istanza del UICollectionView :
[code lang=”obj-c”]
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
[/code]
Poi andiamo nel Storyboard e colleghiamo l’outlet creata con l’oggetto.
Adesso sempre nel file del intestazione inseriamo un protocollo:”UICollectionViewDataSource“. Se selezioniamo questo protocollo vediamo nel pannello a destra la descrizione. Selezioniamo la voce “Reference”:
Si apre una nuova finestra della documentazione di questo protocollo. Vediamo i metodi che ci interessano e le implementiamo nella nostra classe:
[code lang=”obj-c”]
– (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 2;
}
– (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.height)];
NSArray *images = @[@"Tiger.jpg", @"Nature.jpg"];
img.image = [UIImage imageNamed:[images objectAtIndex:indexPath.item]];
[cell.contentView addSubview:img];
return cell;
}
[/code]
Praticamente abbiamo dichiarato quante celle vogliamo nel metodo “numberOfItemsInSection” e cosa deve apparire in ogni cella. In questo caso abbiamo inserito 2 immagini. Finito questo testiamo il progetto e vediamo il risultato.