iOS Configuration de UICollectionViewDelegate et sélection des éléments


Exemple

Parfois, si une action doit être liée à la sélection de cellules d'une vue de collection, vous devez implémenter le protocole UICollectionViewDelegate .

Supposons que la vue de collection se trouve dans un UIViewController MyViewController .

Objectif c

Dans votre MyViewController.h déclare qu'il implémente le protocole UICollectionViewDelegate , comme ci-dessous

@interface MyViewController : UIViewController <UICollectionViewDelegate, .../* previous existing delegate, as UICollectionDataSource *>

Rapide

Dans votre MyViewController.swift, ajoutez ce qui suit

class MyViewController : UICollectionViewDelegate {
}

La méthode à mettre en œuvre est

Objectif c

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
}

Rapide

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
}

À titre d'exemple, nous pouvons définir la couleur d'arrière-plan de la cellule sélectionnée sur verte.

Objectif c

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell* cell = [collectionView cellForItemAtIndexPath:indexPath];
    cell.backgroundColor = [UIColor greenColor];
}

Rapide

class MyViewController : UICollectionViewDelegate {
    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
    {
        var cell : UICollectionViewCell = collectionView.cellForItemAtIndexPath(indexPath)!
        cell.backgroundColor = UIColor.greenColor()
    }
}