我決定選擇不使用Xib來生成我自定義的UICollectionViewCell
(StoneCell
),所以我一直在努力如何以編程方式正確初始化它。如何在沒有Nib的情況下以編程方式初始化UICollectionViewCell
我實現:在我UICollectionView
控制器
[self.collectionView registerClass:[StoneCell class] forCellWithReuseIdentifier:@"stoneCell"];
:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize size = [MainScreen screen];
CGFloat width = size.width;
CGFloat item = (width*60)/320;
return CGSizeMake(item, item);
}
以及。
在我StoneCell.m
,我試過如下:
-(id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
StoneCell* stone = [[StoneCell alloc] initWithFrame:frame];
self = stone;
}
return self;
}
,但無濟於事。當我建立並運行時,我崩潰在self = [super initWithFrame:frame];
當我檢查幀的值時,它正確設置在{{0,0},{70,70}}
這是它應該在6s上。但是,對象stone
(以及self
)都報告爲nil
。
很顯然,這是不正確的,所以我想知道如何正確初始化的單元格。
我也是正常出隊的單元格:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
所以這照顧。
你有沒有繼承你的UICollectionViewCell StoneCell? – Miknash
是的,肯定是的。 –
愚蠢的問題,你確認你正確地設置你的數據源並正確地委託CollectionView?另外,如果你在故事板上有一個原型單元格,然後告訴該原型單元格它是StoneCell類,那麼你可以考慮在你的collectionview中添加一個原型單元格。 – Acludia