Есть ли способ вызвать initialLayoutAttributesForAppearingItemAtIndexPath с некоторой задержкой последовательно для ячейки представления коллекции?

Я работаю над UICollectionView, который анимированно перезагружает ячейки. Я написал код анимации в своем классе макета в

- (UICollectionViewLayoutAttributes*)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath 

И он отлично работает, я просто хочу знать, что каким-то образом я могу ввести задержку в анимации ячеек, чтобы это было так, как если бы первая ячейка достигла своего места, а затем вторая, а затем третья ячейка и так далеко.

Так есть ли какой-то конкретный способ добиться этого?


person kidsid49    schedule 19.08.2014    source источник


Ответы (2)


К сожалению, фреймворк не предназначен для такой работы. Я бы не стал анимировать кадры напрямую — это темный путь, ведущий к боли. В основном вам нужно добавить одну модель в источник данных, поддерживающий представление коллекции, подождать и повторить. Это не должно быть слишком сложно, но немного хакерски.

person Ash Furrow    schedule 19.08.2014
comment
Этот метод определенно менее хакерский, чем мой. Я бы пошел с этим. - person Engin Kurutepe; 20.08.2014
comment
@Ash Наконец-то я добился этого, изменив перезагрузку на ручную вставку элементов с некоторой задержкой. Это то, что вы пытаетесь сказать? - person kidsid49; 20.08.2014

Если анимация внешнего вида, которую вы хотите получить, представляет собой покадровую анимацию, вы можете настроить начальную позицию вместо добавления задержки.

Допустим, вы хотите, чтобы ваши клетки прилетали справа. Для первой ячейки вы можете установить начальное смещение 500 пикселей, для второй 600 пикселей, для третьей 700 пикселей и так далее. Несмотря на то, что все они начинают анимироваться одновременно, они достигают своих позиций последовательно.

Надеюсь это поможет.

person Engin Kurutepe    schedule 19.08.2014