何が起こっていますか
現在、UICollectionViews
内で2 つを使用するアプリケーションがありますUITableView
。このようにして、Pulse News のようなアプリケーションを作成します。これに関する私の問題は、6行目と11行目が完全に消えて、セルであるべき場所に空白が残ることがあることです。すべてのセルがこのようなものであったとしても (そして、このようにして、私が正しく行っていないと仮定することができます)、実際には気にしませんが、問題は、それらの特定のセルで起こっていることです。
私の理論
6 行目と 11 行目はスクロールを開始したときに表示される行なので、デフォルトでは 5 つのセルが表示され、最初の水平スクロールを行うと 6 行目が表示されます (空白のスペースがある場合があります)。
私が持っているもの
私が現時点で行っている唯一のことはこれです:
[self.collectionView registerNib:[UINib nibWithNibName:CELL_NIB_NAME bundle:nil] forCellWithReuseIdentifier:CELL_IDENTIFIER];
でviewDidLoad
。そして、セルの作成について:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CELL_IDENTIFIER forIndexPath:indexPath];
NSMutableDictionary *dictionary = [self.DataSource objectAtIndex:[indexPath row]];
[cell buildViewWithDictionary:dictionary withReferenceParent:self.referenceViewController];
return cell;
}
ですから、ここで起こっていることは何もありません。データ ソース (ダミーの JSON ファイル) に何か問題があったと思いますが、正常に動作し、セルが表示される場合があるため、その部分からは問題ないと思います。
だから私の「質問」:何が起こっているのか知っている人はいますか?iOS のバグだとは言いたくないのですが、他に思いつきません。
編集 1.0
驚くべき部分は、この方法です
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
[0,5]を計算せずに[0,4]からindexPath
[0,6]になります。iOSでこれが実際に起こっているのを初めて見ました。
編集 2.0
セルを作成する方法を切り替えました。デキューする代わりに、古い方法を使用しています。
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CELL_NIB_NAME owner:self options:nil];
MyCell *cell = (MyCell *)[nib objectAtIndex:0];
相変わらず悲しい結果です。