2017-04-16 67 views
0

我在我的代碼中使用了自定義的UICollectionReusableView,HeaderCollectionReusableView。而它又包含一個UILabel。當我去使用標籤時,由於某種原因它是零。我首先註冊了課程,然後我嘗試用一​​個dequeue來調用它。我錯過了什麼?UICollectionReusableView內部的標籤始終爲零

override func viewDidLoad(){ 
    super.viewDidLoad() 

    collectionView?.register(HeaderCollectionReusableView.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: colReusableViewIdentifier) 

    self.collectionView?.collectionViewLayout = UICollectionViewFlowLayout() 
} 

@objc override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { 
    let headerReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: colReusableViewIdentifier, for: indexPath) as! HeaderCollectionReusableView 
    headerReusableView.headerLabel.text = "Reacshn" 

    return headerReusableView 
} 
+0

它結束了明確登記HeaderCollectionReusableView是導致無標籤的問題。在我的情況下,簡單地清理項目和重建沒有註冊電話工作。 –

回答

2

查看代碼我假設自定義可重用視圖不是使用xib創建的。最好的選擇是

  1. 使用xib創建一個自定義的可重用視圖。
  2. 註冊在viewDidLoad中使用下面的函數,即func register(_ nib: UINib?, forSupplementaryViewOfKind kind: String, withReuseIdentifier identifier: String)