11

我正在实现一个自定义 UICollectionViewCell,我想知道如何将模型数据发送给它,以便可以使用数据来初始化单元格的子视图。

我通过这样做注册了我的 MyCollectionViewCell..

[self.collectionView registerClass:[MyCollectionViewCell class] forCellWithReuseIdentifier:@"MyCell"];

在下面的方法中,我做...

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

MyCollectionViewCell* cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];

我面临的问题是,当一个单元格不在重用队列中时,它会通过调用 initWithFrame 方法(文档确认应该发生)来初始化一个新单元格。但是,我的 MyCollectionViewCell 类中有一个自定义的 init 方法,它是......

-(id) initWithFrame:(CGRect)frame withData: (NSDictionary*) data;

我希望调用我的自定义初始化方法。我该怎么做?我没有使用任何笔尖,而是以编程方式进行所有操作。

如果没有办法,我必须改用 initWithFrame 方法,我还能如何将模型数据传递给 MyCollectionViewCell 以便我可以使用该数据初始化子视图?

谢谢!

4

2 回答 2

6

出队后 [cell initData:data] 怎么样?无论如何,您可能需要重新初始化出队单元格上的数据。

于 2012-12-22T02:05:18.907 回答
0

另一种选择是为您的 layoutAttributes 对象提供指向数据的指针,并让单元格在其 applyLayoutAttributes: 方法中从那里获取它。

于 2013-07-11T17:09:52.677 回答