我正在实现自定义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,以便用这些数据初始化子视图?
谢谢!
答案 0 :(得分:6)
你出列队后,[cell initData:data]怎么样?无论如何,您可能需要重新启动出列单元格的数据。
答案 1 :(得分:0)
另一个选择是给你的layoutAttributes对象一个指向数据的指针,让单元格从applyLayoutAttributes:方法中抓取它。