自定義UICollectionViewCell中控制元件為nil
阿新 • • 發佈:2019-01-24
一、問題描述
將storyBoard中的UICollectionViewController中的UICollectionViewCell中的imageView和label拖線到自定義UICollectionViewCell類的.m的類延展中,在自定義UICollectionViewCell類的.h中拿到資料模型,在.m中重寫資料模型的set方法,給cell中的兩個控制元件賦值,這時發現兩個控制元件均為nil,無法賦值。
二、原因分析
cell中的控制元件均為nil,經檢查發現是註冊cell 的方法出了問題。一般情況下,UICollectionViewCell用xib的話是用registerNib註冊cell;用程式碼建立UICollectionViewCell的話是用registerClass註冊cell;而用storyBoard建立UICollectionViewCell的話是不需要註冊cell的。專案中UICollectionViewCell是在storyBoard中,所以下述註冊cell的方法是多餘的。
在自定義的UICollectionViewController的類中多寫了如下程式碼:
[self.collectionView registerClass:[JWCycleCollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
三、解決方法
將上述註冊cell的方法刪掉之後,cell 裡邊控制元件上的資料就可以正常顯示了。