Notez comment utiliser CollectionView après TableView.
Ajouter l'ID à la cellule

1.2 DataSource, Delegate (sur le code source) Ajouter un protocole dans le contrôleur de vue
CellDetailPageViewController
class CellDetailPageViewController: UIViewController,UICollectionViewDelegate, UICollectionViewDataSource {
}
Ajouter une instance CollectionView
CellDetailPageViewController
@IBOutlet weak var collectionView: UICollectionView!
1.3 Ajouter la méthode renvoyée avec une erreur Déterminez le nombre de cellules
CellDetailPageViewController
    let contentNeedShow = ["Pomme","fraise","grain de raisin","Ananas","kiwi","Tateyama","Body Mountain pour homme","Tanigawadake","Mont Kinmine","Hotakadake","Grand Bodhisattva","café","Lait de soja","jus","Gazéifiée","eau"]
    
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return contentNeedShow.count
    }
Déterminer le contenu de la cellule (définir la couleur de l'élément de base)
CellDetailPageViewController
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) 
    cell.backgroundColor = UIColor.lightGray
    return cell
    }
Cell
class Cell: UICollectionViewCell{
    @IBOutlet weak var label: UILabel!
}
Changer la variable qui renvoie le contenu de Cell
CellDetailPageViewController
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! Cell
    cell.backgroundColor = UIColor.lightGray
    cell.layer.cornerRadius = 10
    cell.label.text = contentNeedShow[indexPath.row]
    return cell
    }
2.2 Ajuster l'espacement entre les cellules
Ajout du nouveau protocole UICollectionViewDelegateFlowLayout
CellDetailPageViewController
class CellDetailPageViewController: UIViewController,UICollectionViewDelegate, UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {
}
Ajouter une méthode
CellDetailPageViewController
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let horizontalSpace : CGFloat = 20
    let cellSize : CGFloat = self.view.bounds.width / 3 - horizontalSpace
    return CGSize(width: cellSize, height: cellSize)
    }
Ajouter à la vue
CellDetailPageViewController
    override func viewDidLoad() {
        super.viewDidLoad()
        let layout = UICollectionViewFlowLayout()
        layout.sectionInset = UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
        collectionView.collectionViewLayout = layout
    }
Le résultat ressemble à ceci

Recommended Posts