我正在實現自定義UICollectionViewCell,並且我想知道如何向其發送模型數據,以便數據可用於初始化單元格的子視圖。iOS子類UICollectionViewCell自定義初始化方法
註冊我做我的MyCollectionViewCell ..
[self.collectionView registerClass:[MyCollectionViewCell class] forCellWithReuseIdentifier:@"MyCell"];
,並在下面的方法,我做...
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
MyCollectionViewCell* cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];
我面臨的問題是,當一個細胞ISN」 t在重用隊列中,它通過調用initWithFrame方法(文檔確認應該發生)來初始化一個新的單元。不過,我有一個自定義的init方法在我MyCollectionViewCell類,這是...
-(id) initWithFrame:(CGRect)frame withData: (NSDictionary*) data;
我想我的自定義初始化方法,而不是調用。我會怎麼做?我沒有使用任何筆尖,我正在以編程方式做所有事情。
如果沒有辦法,我必須使用initWithFrame方法代替,我怎麼可以將模型數據傳遞給MyCollectionViewCell,以便我可以使用該數據初始化子視圖?
謝謝!
這個。如果你正在重用單元,你不會傳遞initWith ...任何東西,所以設置數據應該與init方法分開。 – jrturton
除了,不要把它叫做initData。調用它的configureForData或setData(如果數據是一個屬性)的東西。 init ...方法只能在新分配的對象上調用。 – jrturton
這是有道理的。在我調用setData並傳入模型數據後,如何觸發單元格重新加載它的UI?我是否要調用setNeedsLayout並在我的自定義單元格中有 - (void)layoutSubviews方法? –