Ich habe eine Sammlungsansicht. Ich möchte, dass jede Zelle programmatisch eine Zeile aufruft. Hier ist, was ich bis jetzt getan habe:Eine Zelle für eine Zeile in der Sammelzelle 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!
}
Haben Sie eine Idee, was als nächstes zu tun?
Ich kann die von Ihnen erwähnte Funktion nicht finden. Ich habe versucht, es wie folgt zu schreiben: aber ich wird nicht überhaupt aufgerufen: func Kollektion (_ Collection: UICollectionView, Layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let size = CGSize (Breite: UIScreen .main.bounds.width, height: 10) return size; } –
Ist der Viewcontroller, der die Funktion enthält, die das Protokoll 'UICollectionViewDelegateFlowLayout' implementiert? Und wenn ja, haben Sie es als Delegat für das CollectionView festgelegt? – Houwert