現在、UICollectionViewCell をサブクラス化しており、配列内にセルをロードしています (以下は、collectionViewCell.m 内のコードです)。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSArray *cellArray = [[NSBundle mainBundle] loadNibNamed:@"insightCell" owner:self options:nil];
NSLog (@"NSArray cellArray %i", [cellArray count]);
if ([cellArray count] < 1) {
return nil;
}
if (![[cellArray objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
return nil;
}
self = [cellArray objectAtIndex:0];
}
return self;
}
すべてが正常に読み込まれ、メソッドの戻り値が表示されます- (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
。これは 11 です。しかし、cellArray の開始プロセスをログに記録すると、次のようになります。
したがって、セル配列は、配列がセルを追加する回数をカウントしていますが、何らかの理由で最大6回までしかありません。奇妙なことは; 11個のアイテムすべてがロードされますが、NSArrayは11個すべてがロードされたことを記録せず、6で停止するだけで面倒です...これを修正するいくつかの異なる方法を試しましたが、機能していないようで、私を怒らせる!他の誰かがこの問題に遭遇したとは思いませんか?
念のため rootController.m collectionview コードを追加しますが、すべてが適切な方法でリンクされるため、これは問題になりません。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellID = @"cellID";
insightCell *myCell = (insightCell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
return myCell;
}