J'ai une vue de collection. Je veux que chaque cellule prenne une ligne par programme. Voici ce que j'ai fait jusqu'à présent:Une cellule pour une ligne dans la cellule de collection swift?
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.challenges.count
}
// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// get a reference to our storyboard cell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell
cell.myLabel.text = self.challenges[indexPath.item]
cell.backgroundColor = .orange
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("You selected cell #\(indexPath.item)!")
}
}
class MyCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var myLabel: UILabel!
}
Une idée de quoi faire ensuite?
Je n'arrive pas à trouver la fonction que vous avez mentionnée. J'ai essayé de l'écrire comme suit: mais je me coutume appelé du tout: func CollectionView (_ CollectionView: UICollectionView, mise en page collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: indexPath) -> CGSize { let size = CGSize (largeur: UIScreen .main.bounds.width, height: 10) taille de retour; } –
Le viewcontroller contenant cette fonction met-il en œuvre le protocole 'UICollectionViewDelegateFlowLayout'? Et si oui, l'avez-vous défini en tant que délégué pour la collectionView? – Houwert