我在Interface Builder中创建了一个自定义UICollectionViewCell,将其上的视图绑定到该类,然后当我想使用并将字符串设置为字符串上的标签时,tha标签的值为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! }
我再打self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")一次。 如果您使用的是情节提要,则不想调用此功能 。它将覆盖情节提要中的内容。
self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
如果您仍然有问题请检查是否reuseIdentifier是 相同 的dequeueReusableCellWithReuseIdentifier ,并 在storyboard。
reuseIdentifier
dequeueReusableCellWithReuseIdentifier
storyboard