¿Cómo crear y usar UIcollectionView mediante progtwigción?

He buscado mucho por crear un UICollectionView programática, pero ninguno de ellos sugiere la forma más simple de usarlo, cómo agregar una label o una image a UICollectionViewCell . La mayoría de los sitios sugieren que la implementación de UICollectionView es igual que UITableView , pero la principal diferencia viene cuando intentamos agregar cualquier image. En UITableView podemos asignar imagesViews en el método cellForRow donde cell == nil y asignar imágenes donde ( cell != nil ). pero aquí, en el caso del método UICollectionView ItemAtIndexPath , no hay condición ( cell == nil ) como en UITableView de CellForRow . Como resultado, no podemos asignar de manera efectiva variables de UImageView s o tags, etc. en el método itemAtIndexPath . ¿Quiero saber si hay alguna alternativa que no sea subclasificar UICollectionViewCell y asignar variables en esa Clase personalizada? ¿Puede alguien ayudar, cualquier ayuda es apreciada?

No hay alternativa para crear o asignar celdas en el método itemAtIndex. Necesitamos registrar la class personalizada para crear cualquier vista dentro de la class personalizada. algo como esto :

 [UICollectionView registerClass:[CustomCollectionViewClass class] forCellWithReuseIdentifier:@"cellIdentifier"]; 

aquí está el mejor enlace que encontré útil. Espero que ayude a los demás

Rápido:

  override func viewDidLoad() { super.viewDidLoad() let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10) layout.itemSize = CGSize(width: 70, height: 70) let demoCollectionView:UICollectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout) demoCollectionView.dataSource = self demoCollectionView.delegate = self demoCollectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell") demoCollectionView.backgroundColor = UIColor.whiteColor() self.view.addSubview(demoCollectionView) } func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 27 } func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) cell.backgroundColor = UIColor.lightGrayColor() return cell } func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { print("User tapped on item \(indexPath.row)") }