Monday, May 16, 2016

CollectionView

Data

Start with what you want in your cells. I will create an array of this class and show it in my CollectionView.
class Data {
    var colorName: String!
    var color: UIColor!
    
    init (colorName: String, color: UIColor) {
        self.colorName = colorName
        self.color = color
    }
}

Cell

You have to be able to access the controls on the cell (besides the view of the cell).
class CollectionCell: UICollectionViewCell {
    @IBOutlet weak var colorNameLabel: UILabel!
}

View Controller

Tie it all together.
class ViewController: UIViewController,
    UICollectionViewDataSource {
    
    @IBOutlet weak var collectionView: UICollectionView!

    var data: [Data] = []
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        collectionView.dataSource = self
        
        data.append(Data(colorName: "light gray", color: UIColor.lightGray))
        data.append(Data(colorName: "gray", color: UIColor.gray))
        data.append(Data(colorName: "dark gray", color: UIColor.darkGray))
        data.append(Data(colorName: "black", color: UIColor.black))
    }
    
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return data.count
    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CustomCollectionViewCell
        cell.backgroundColor = data[indexPath.row].color
        cell.colorNameLabel.text = data[indexPath.row].colorName
        return cell
    }
}

(Swift 3)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.

SwiftUI Search & Filter with Combine - Part 3 (iOS, Xcode 13, SwiftUI, 2...

In part 3 of the Searchable video series, I show you how to use Combine in #SwiftUI for the search and filter logic connected to the searcha...