Criei um UICollectionViewCell personalizado no Interface Builder, vinculei visualizações à classe e, quando desejar usar e definir uma string para o rótulo da string, esse rótulo terá um valor nulo.
override func viewDidLoad() {
super.viewDidLoad()
// Register cell classes
self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
}
override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
var cell: LeftMenuCollectionViewCell
cell = collectionView.dequeueReusableCellWithReuseIdentifier("ls", forIndexPath: indexPath) as LeftMenuCollectionViewCell
println(cell.label) // <- this is nil, why??
cell.label.text = "asd"
return cell
}
E a célula da subclasse:
class LeftMenuCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
}
Respostas:
Estou ligando
self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
novamente. Se você estiver usando um storyboard, não deseja chamar isso . Ele substituirá o que você tem no seu storyboard.Se você ainda tiver o problema, verifique
reuseIdentifier
se o mesmo está dentrodequeueReusableCellWithReuseIdentifier
e dentrostoryboard
.fonte
Apenas remova esta linha:
fonte
Se você estiver usando o xib, certifique-se de ter adicionado esta linha de código ao seu viewdidload.
Objetivo C:
Rápido:
fonte
Tenho que registrar esse pessoal!
fonte
Parece que há duas maneiras de me registrar e eu estava usando a primeira errada. Eu tenho uma visualização xib personalizada, registrada com a segunda opção, e temos dados!
1:
2:
fonte
Eu tive um problema semelhante, mas meu erro foi não delegar o CollectionViewCell para poder alterar o texto do rótulo.
fonte
Eu acho que a melhor solução é usar diretamente do storyboard onde adicionar a
CollectionView
, em alternativa, você precisa remover aCollectionViewCell
do seuCollectionView
storyboard e registrar uma célula com o seguinte comando:fonte