我有一个带有自定义类的UICollectionView,它是UICollectionViewCell的子类。我一直收到以下错误:
理由:'无法将种类的观点出局: 具有标识符约定的UICollectionElementKindCell - 必须 为标识符注册一个nib或类或连接原型 故事板中的单元格
但我做了以下事情:
使用collectionView注册自定义类。
self.collectionView.registerClass(AppointmentCollectionViewCell.self, forCellWithReuseIdentifier:"Appointment");
这是我的队列:
let appointmentCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Appointment", forIndexPath: indexPath) as! AppointmentCollectionViewCell;
这就是我的AppointmentCollectionViewCell的样子:
class AppointmentCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var leftBorderView: UIView!
@IBOutlet weak var appointmentLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
func setAppointment(appointment:Appointment){
self.leftBorderView.backgroundColor = appointment.eventColour;
self.appointmentLabel.textColor = appointment.eventColour;
self.backgroundColor = appointment.eventColour.colorWithAlphaComponent(0.2);
}
}
我也在视图中提供了重用标识符“Appointment”。
我也根据此处发布的答案尝试了以下内容 - 仍无效:
let appointmentNib = UINib(nibName: "AppointmentCollectionViewCell", bundle:NSBundle.mainBundle())
self.collectionView.registerNib(appointmentNib, forCellWithReuseIdentifier: "Appointment")
谷歌搜索后,大多数人忘记注册课程。在我的情况下,我已经注册了课程,但仍然一直收到错误。我哪里错了?
答案 0 :(得分:0)
如果您的单元格与xib文件相关联,则需要使用registerNib方法,而不是registerClass方法。
func registerNib(_ nib: UINib?, forCellWithReuseIdentifier identifier: String)
你似乎也在混淆Collection Reusable View和UICollectionViewCell - 这是什么?两者都有特定的注册方法,请查看文档。
答案 1 :(得分:0)
首先检查:
您有一个具有 AppointmentCollectionViewCell
从课堂上获取笔尖
对于例如
UINib *favouritesNib = [UINib nibFromClass:[TNYCellRestaurantAnchorclass]];
将Nib注册到CollectionView
[self.collectionViewName registerNib:nib forCellReuseIdentifier:@"identifier name"];