Wie der Titel angibt, habe ich eine Bezeichnung in einer UICollectionReusableView. Die Ansicht, die ich verwende, erfolgreich mit dem folgenden aus der Warteschlange entfernt:Label in UICollectionReusableView immer Null
func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
let hourCell = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier:"Hour", forIndexPath: indexPath) as! HourCollectionReuseableView;
let time = String(indexPath.item) + "H";
hourCell.setTime(time);
return hourCell;
}
Hier ist die Interface Builder Ansicht von HourCollectionReuseableView
. Ich stelle fest, dass ich hier tun dies in der benutzerdefinierten Klasse der Dateieigentümer:
Hier ist die Sammlung Reuse Identifikation:
Hier ist die HourCollectionReuseableView
Klasse:
class HourCollectionReuseableView: UICollectionReusableView {
@IBOutlet weak var hourLabel: UILabel!
@IBOutlet weak var hourDividerLine: UIView!
override func awakeFromNib() {
super.awakeFromNib();
}
func setTime(time:String) {
self.hourLabel.text = time;
}
In meinem View-Controller registriere ich die Klasse wie folgt:
override func viewDidLoad() {
super.viewDidLoad();
self.collectionView.registerClass(HourCollectionReuseableView.self, forSupplementaryViewOfKind: "Hour", withReuseIdentifier:"Hour");
}
Der Code hält auf self.hourLabel.text = time
mit dem folgenden Fehler Absturz:
fatal error: unexpectedly found nil while unwrapping an Optional value
Wo ich falsch gehe?
hier bekommen Sie die Ausgabe lassen die Zeit = String (indexPath.item) + "H"; oder nicht –
Überprüfen Sie, dass Ihr 'hourLabel' mit der Ansicht verbunden ist? –
Sie müssen Ihre Zelle nicht registrieren, während Sie das Storyboard verwenden. Überprüfen Sie auch, dass Sie Label keinen "Null" -Wert zuweisen. Absturz ist wegen Nullwertvergabe. –