2016-08-30 86 views
2

我有一個UICollectionView,它具有UICollectionViewCell子類的自定義類。我不斷收到以下錯誤:無法將需要的視圖作爲單元格退出UICollectionView

reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier Appointment - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

我已經做不過以下幾點:

註冊自定義類用的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); 
    } 

} 

我也曾經在視圖中提供的再利用標識爲「約會」 。

enter image description here

我也試過以下基於此公佈答案 - 仍然沒有工作:

let appointmentNib = UINib(nibName: "AppointmentCollectionViewCell", bundle:NSBundle.mainBundle()) 
     self.collectionView.registerNib(appointmentNib, forCellWithReuseIdentifier: "Appointment") 

谷歌搜索後,多數人忘記了註冊類。在我的情況下,我已經註冊了課程,但仍然不斷收到錯誤。我哪裏錯了?

+0

你有正確的界面生成器中鍵入 '約會'?在故事板中選擇單元格後,打開屬性檢查器並檢查標識符字段...? – pedrouan

+0

@pedrouan,我已根據您的意見更新了帖子 – user481610

+0

故事板中的單元標識符不是必需的如果您以編程方式註冊單元標識符 – Tiko

回答

0

如果您的單元格與xib文件關聯,則需要使用registerNib方法,而不是registerClass方法。

func registerNib(_ nib: UINib?, forCellWithReuseIdentifier identifier: String) 

Documentation

也似乎是混亂的收集可重複使用的查看和UICollectionViewCell - 這是什麼呢?兩者都有特定的註冊方法,請查看文檔。

+0

我不遵循上次發佈的更新,「您似乎也很迷惑可重用集合查看和UICollectionViewCell「請詳細說明,我可能會困惑的東西 – user481610

0

先檢查:

  1. 你有廈門國際銀行,其具有類AppointmentCollectionViewCell

  2. 從 類例如獲取筆尖 UINib *favouritesNib = [UINib nibFromClass:[TNYCellRestaurantAnchorclass]];

  3. 註冊筆尖的CollectionView

    [self.collectionViewName registerNib:nib forCellReuseIdentifier:@"identifier name"];

相關問題