2017-10-13 5 views
0

J'essaye de comprendre comment je peux capturer le chemin d'index courant de ma vue de collection.UICollectionView - Recherche le chemin d'index courant et change les valeurs/données

J'utilise un flux horizontal, et je l'ai déjà dit ce qui suit:

func numberOfSections(in collectionView: UICollectionView) -> Int { 
     return 1 
    } 
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 3 
    } 

Il existe trois cellules pré-définies, et je souhaite modifier les éléments text/interface utilisateur sur chacun des trois cellules de vue de collection, en conséquence. Comment puis-je atteindre cet objectif? Je me bats vraiment, car actuellement je reçois 3 cellules pleines des mêmes données. Ce qui est attendu

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

       let cell = detailsCollectionView.dequeueReusableCell(withReuseIdentifier: "DetailsCollectionViewCell", for: indexPath) as! DetailsCollectionViewCell 
       cell.layer.shadowRadius = 1 
       cell.layer.shadowOpacity = 0.1 
       cell.layer.shadowOffset = CGSize(width: 2.5, height: 5) 

       return cell 
     } 
    } 
} 

Mais en substance, je veux faire ce qui suit, le code de pseudo:

if cell.indexPath == 0 { 
     label.text = "This is the first cell" 

    } else if cell.indexPath == 1 { 
    label.text = "This is the second cell" 

    } else if cell.indexPath == 2 { 
    label.text = "This is the third cell" 
    } 
} 

présente ses excuses si cela est une question stupide.

Nous vous remercions de votre temps.

+0

Dans votre code pseudo, écrire dans 'CollectionView (_ CollectionView: cellForItemAt:)' 'et remplacer si cell.indexPath == 0' 'avec indexPath.row == 0' (et ainsi de suite). – Larme

+0

@Larme Dans un 'UICollectionView', vous devriez utiliser' item' au lieu de 'row' pour trouver le numéro d'un élément. – the4kman

+0

Je me bats, qu'est-ce que j'appelle avant 'collectionView (_ collectionView: cellForItemAt:)'? Question stupide, je sais. – SwiftLearner

Répondre

0

Vous devez comparer la propriété item du paramètre indexPath de cellForItemAt.

if indexPath.item == 0 { 
    //first item 
} 
+0

Merci beaucoup. J'accepterais la réponse, mais malheureusement faible. Mais, encore une fois, merci beaucoup monsieur! Edit - Je dois attendre une minute de plus. Alors je vais accepter. Merci encore. – SwiftLearner

+0

@SwiftLearner Bienvenue. Vous pouvez accepter cette réponse dans une minute ou deux, c'est une question de limite de temps, pas de manque de réputation. – the4kman

+0

Oui, je me dis haha! Merci encore. Et j'ai accepté votre réponse. – SwiftLearner