我有一个自定义UICollectionViewCell
的自定义背景视图,该视图是使用几种配色方案之一绘制的。背景视图的配色方案在我-(id)initWithFrame:andColourPalette:
的视图自定义初始化程序中设置。
我的UICustomViewCell
子类中有一个类似的自定义初始化程序,但是当我设置单元格时,我无法弄清楚如何调用这个初始化程序cellForItemAtIndexPath:
谁能帮我做到这一点?或者提供替代解决方案来将此颜色字典传递到单元格中以传递给子视图?
编辑以显示更多细节:
这就是我的 UICollectionView VC 中的内容:
在 ViewWillAppear 中:
[self.collectionView registerClass:[OPOLawCollectionViewCell class] forCellWithReuseIdentifier:CELL_ID];
self.colourPalette = [OPOColourPalette greenyColourPalette];
在 cellForItemAtIndexPath 中:
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CELL_ID forIndexPath:indexPath];
OPOLawCollectionViewCell *lawCell = (OPOLawCollectionViewCell *)cell;
MainLevel *level = self.collectionData[indexPath.row];
lawCell.delegate = self;
lawCell.colourPalette = self.colourPalette;
在我的自定义 UICollectionViewCell
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// get background view
OPOLawBook *lawBookView = [[OPOLawBook alloc]initWithFrame:CGRectMake(0, 0, 200, 265) andColourPalette:self.colourPalette];
但这不起作用 - 我猜是因为没有设置属性。
如果我将最后一行更改为此,那么它可以正常工作:
OPOLawBook *lawBookView = [[OPOLawBook alloc]initWithFrame:CGRectMake(0, 0, 200, 265) andColourPalette:[OPOColorPalette greenyColorPalette]];
所以我想我需要在这里使用自定义初始化程序,但我不知道如何调用它,或者从哪里调用它......
谢谢