Ho cercato molto per creare uno UICollectionView
programmaticamente ma nessuno di loro suggerisce il modo più semplice per usarlo, come aggiungere un'etichetta o un'immagine allo UICollectionViewCell
. La maggior parte dei siti suggerisce che l'implementazione di UICollectionView
è la stessa di UITableView
, ma la principale differenza viene quando proviamo ad aggiungere qualsiasi immagine. Nel UITableView
possiamo assegnare le immagini nel metodo cellForRow
dove cell == nil
e assegnare le immagini dove (cell != nil
). ma qui, nel caso del metodo UICollectionView ItemAtIndexPath
, non esiste alcuna condizione (cell == nil
) come in CellForRow
. Di conseguenza, non è possibile allocare in modo efficace le variabili di UImageView
s o Etichette ecc nel metodo itemAtIndexPath
. Voglio sapere se esiste un'alternativa diversa dalla sottoclasse dello UICollectionViewCell
e allocare le variabili in quella Classe personalizzata? Qualcuno può aiutare, ogni aiuto è apprezzato.Come creare e utilizzare UIcollectionView a livello di codice?
6
A
risposta
3
Non esiste un'alternativa per creare o allocare celle nel metodo itemAtIndex. Abbiamo bisogno di registrare la classe personalizzata per creare qualsiasi vista all'interno della classe personalizzata. qualcosa di simile:
[UICollectionView registerClass:[CustomCollectionViewClass class] forCellWithReuseIdentifier:@"cellIdentifier"];
here è il collegamento migliore che ho trovato utile. Speranza che aiuta gli altri
1
rapida:
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)")
}
Forse questo post del blog e repository github corrispondente ho fatto ti aiuta: http://dasdev.de/2013/12/27/delegate-and-data- source-of-collection-views/ – dasdom
ya in una certa misura, ma dobbiamo sottoclassi l'NSObject nel link che hai suggerito. Quindi, per aggiungere un'etichetta, non esiste altro che la sottoclasse che non è necessaria nella classe uitableview. Grazie comunque. –
http://stackoverflow.com/questions/17856055/creating-a-uicollectionview-programmatically –