Что происходит
В настоящее время у меня есть приложение, которое использует два UICollectionViews
внутри a 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;
Переход от indexPath
[0,4] до [0,6] без вычисления [0,5]. В первый раз я действительно вижу, как это происходит в iOS.
Изменить 2.0
Я переключил способ создания ячеек, и вместо dequeuing я использую старый способ:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CELL_NIB_NAME owner:self options:nil];
MyCell *cell = (MyCell *)[nib objectAtIndex:0];
Все тот же грустный результат.