2016-11-04 54 views
0

我有一個UICollectionView和一個包含UILabel的UICollectionViewCell的自定義單元格子類。在cellForItemAtIndexPath中,我正在出列,設置UILabel的文本並正常返回單元格。UICollectionViewCell中的UILabel未顯示在新出隊的單元格上

當它加載時,一切看起來都正確,但是當我滾動新出列單元格的標籤時,文本是空白的,即使我註銷了正在設置的字符串並且它是正確的。

我沒有添加或刪除單元格中的任何內容,也沒有設置爲隱藏。

作爲一項測試,我設置了標籤的背景顏色,並且背景位置和尺寸看起來正確,所以我不認爲標籤放錯了位置。

任何想法?

我不確定它是否相關,但我正在使用Xcode 8.1,Swift 2.3並在實際的iPad和iPhone以及模擬器上看到類似的行爲。

是@鈞ZAC要求的代碼:

guard let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Location Cell Vertical Left", forIndexPath: indexPath) as? LocationCollectionViewCellVertical else { 
    print("Couldn't get locationCollectionViewCellVertical") 
    return UICollectionViewCell() 
} 

保護聲明的內部不會被調用。

...

cell.locationTitleLabel.text = originalString 

originalString總是包含一個有效的字符串。

更新:

最奇怪的是,如果我滾動所以這些問題小區是關閉屏幕,然後滾動,他們又是可見的,它們正確顯示。

+0

從你的描述和你做的測試來看,這裏的一切似乎都不錯。也許你可以將代碼發佈到出列位置並設置標籤,以便我們可以幫助調試? –

+0

可悲的是我不能在這裏發佈大部分代碼,但它是一個標準的'collectionView.dequeueReusableCellWithReuseIdentifier(「Location Cell Vertical Left」,forIndexPath:indexPath)as? LocationCollectionViewCellVertical'和'cell.locationTitleLabel.text = originalString' –

+0

你實際上可以編輯你的問題,讓代碼在那裏 –

回答

0

使用斷點和在控制檯PO yourLabelName並檢查幀

+0

記錄框架,我得到比我預期的更小的寬度 - 比所有其他單元小。正如我所提到的,我可以在我期望看到標籤的地方看到背景顏色,因此它處於正確的位置。 –

0

[collectioView registerNib:[UINib nibWithNibName:@ 「collectionViewCell」 束:一個NSBundle mainBundle]] forCellWithReuseIdentifier:@ 「小區」]。要註冊筆尖文件。

+0

感謝您的建議,但我不認爲我需要這樣做,因爲單元格是故事板中collectionview中的原型。那是對的嗎? –

相關問題