gpt4 book ai didi

ios - UICollectionReusableView 中的标签始终为零

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:10 24 4
gpt4 key购买 nike

如标题所述,我在 UICollectionReusableView 中有一个标签。我使用的 View 使用以下命令成功出队:

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;
}

这是 HourCollectionReuseableView 的界面构建器 View 。我在这里注意到,我在文件所有者的自定义类中执行此操作:

enter image description here

这是集合重用标识符:

enter image description here

这是 HourCollectionReuseableView 类:

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;
}

在我的 View Controller 中,我按如下方式注册类:

override func viewDidLoad() {
super.viewDidLoad();
self.collectionView.registerClass(HourCollectionReuseableView.self, forSupplementaryViewOfKind: "Hour", withReuseIdentifier:"Hour");
}

代码在 self.hourLabel.text = time 上不断崩溃,并出现以下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

我哪里错了?

最佳答案

正如@firstinq 指出的那样,当您在HourCollectionReuseableView 中使用.xib 时,您应该尝试使用registerNib registerClass 的。

所以,你的代码应该看起来更像

override func viewDidLoad() {
super.viewDidLoad();
self.collectionView.registerNib(UINib(nibName: "HourCollectionReuseableView", bundle: nil), forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "Hour");
}

关于ios - UICollectionReusableView 中的标签始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249415/

24 4 0