UICollectionView scrollToItemAtIndexPath

Я пытаюсь прокрутить до определенного элемента в представлении коллекции, и это, кажется, происходит правильно в 90% случаев. В основном у меня есть представление коллекции, чей кадр я изменяю с помощью автоматического макета, а затем я хочу, чтобы моя ячейка была размером всего нового кадра, поэтому я устанавливаю новый размер. Когда я ставлю точку останова на scrollToItemAtIndexPath, кажется, что когда он работает, размер элемента вступил в силу, но времена, когда он не работаетт, ячейка все еще имеет старый размер. Как я могу убедиться, что itemSize изменился перед прокруткой?

[weakSelf.view removeConstraints:@[weakSelf.verticalSpace, weakSelf.collectionViewBottomSpace, weakSelf.bottomLayoutTopCollectionView]];
[weakSelf.view addConstraints:@[weakSelf.collectionViewToTop, weakSelf.imageHeight, weakSelf.youLabelToTop]];
[UIView animateWithDuration:animated ? .5 : 0.0
                                      animations:^{
                                          [weakSelf.view layoutIfNeeded];
                                      }
                                      completion:^(BOOL finished) {
  UICollectionViewFlowLayout * layout = (UICollectionViewFlowLayout *)self.currentUserCollectionView.collectionViewLayout;

  layout.itemSize = weakSelf.currentUserCollectionView.frame.size;

  [weakSelf.currentUserCollectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:[self getSelectedIndex:selectItem] inSection:0]
                                         atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally
                                                 animated:NO];
}];

Ответы на вопрос(2)

Ваш ответ на вопрос