Interface Builder でカスタム UICollectionViewCell を作成し、そのビューをクラスにバインドしました。その後、文字列を使用して文字列のラベルに設定しようとすると、ラベルの値が nil になります。
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
}
サブクラス化されたセル:
class LeftMenuCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
}
ベストアンサー1
もう一度電話しますself.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
。ストーリーボードを使用している場合は、これを呼び出したくないでしょうストーリーボードの内容が上書きされます。
それでも問題が解決しない場合はreuseIdentifier
、同じでdequeueReusableCellWithReuseIdentifier
そしてでstoryboard
。