Saya telah membuat UICollectionViewCell kustom di Interface Builder, mengikat pandangan ke kelas, dan kemudian ketika saya ingin menggunakan dan mengatur string ke label pada string, label tha memiliki nilai nol.
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
}
Dan sel subkelas:
class LeftMenuCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
}
Jawaban:
Saya menelepon
self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
lagi. Jika Anda menggunakan storyboard, Anda tidak ingin menyebutnya . Itu akan menimpa apa yang Anda miliki di storyboard Anda.Jika Anda masih memiliki cek masalah cuaca
reuseIdentifier
adalah sama didequeueReusableCellWithReuseIdentifier
dan distoryboard
.sumber
Hapus saja baris ini:
sumber
Jika Anda menggunakan xib, pastikan Anda telah menambahkan baris kode ini ke viewdidload Anda.
Sasaran C:
Cepat:
sumber
Harus mendaftar bahwa nib guys!
sumber
Sepertinya ada dua cara untuk mendaftar dan saya menggunakan yang salah dulu. Saya memiliki tampilan xib khusus sehingga terdaftar dengan opsi kedua, dan kami memiliki data!
1:
2:
sumber
Saya memiliki masalah yang sama, tetapi kesalahan saya adalah saya tidak mendelegasikan CollectionViewCell untuk dapat mengubah teks label ..
sumber
Saya pikir solusi terbaik adalah dengan langsung menggunakan dari storyboard mana menambahkan
CollectionView
, sebagai alternatif Anda perlu menghapusCollectionViewCell
dariCollectionView
dalam storyboard Anda dan mendaftarkan sel dengan perintah berikut:sumber