1. 程式人生 > >自定義UICollectionViewCell中控制元件為nil

自定義UICollectionViewCell中控制元件為nil

一、問題描述

將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 裡邊控制元件上的資料就可以正常顯示了。