Я пытаюсь создать интерфейс, который может содержать «представления» разных размеров и т.д. Для этого я использую UICollectionView с этими клетками:UICollectionView Jumpy прокрутки
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
Card *card = [[[usermanager getSelectedUser] getCards] objectAtIndex:indexPath.item];
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cardCell" forIndexPath:indexPath];
[cell addSubview:card];
[cell.layer setBorderColor:[UIColor redColor].CGColor];
[cell.layer setBorderWidth:1.0f];
[cell.layer setMasksToBounds:NO];
return cell;
}
Everthing, кажется, работает нормально, пока количество карт становится слишком большим, и мне приходится прокручивать. Вид немного подпрыгивает, когда я поднимаю палец после прокрутки. И я получаю некоторые другие странные проблемы с пользовательским интерфейсом. Из того, что я прочитал, это связано с перезагрузкой ячеек во время прокрутки. Что было бы правильным способом предотвратить это?
Очень важно отметить, что контент является динамическим. Пользователь должен иметь возможность добавлять и удалять карты во время выполнения.
Благодаря
Как долго '[[usermanager getSelectedUser] getCards]' принимает выполнение? – trojanfoe
У вас есть собственный макет? Если да, убедитесь, что вы подклассифицируете 'UICollectionViewLayout' и используете' UICollectionViewLayoutInvalidationContext' при аннулировании макета. – Dennis
@Dennis Я использую CHTCollectionViewWaterFallLayout –