UICollectionView с TLSpringflowLayout не прокручивается плавно при добавлении более 20 строк

Я создаю таблицу Bubble, например, приложение для сообщений в iOS. Требуется эффект подпрыгивания ячеек при прокрутке. Он отлично работает без TLSpringFlowLayut. Но с этим макетом прокрутка очень медленная и прерывистая.

Также в устройстве используется высокая память и использование ЦП до 96%.

Исходный код: https://github.com/sibahota059/SPHChatCollectionView


person Siba Prasad Hota    schedule 15.06.2014    source источник


Ответы (2)


На самом деле проблема связана с классом TLSpringFlowLayout, который вы использовали. Посмотрите на этот класс. Он добавляет поведение UIAttachment (динамическое поведение) в форме Spring. Таким образом, очевидно, что вы чувствуете эффект пружины при прокрутке этого вида. Откройте файл Xib, к которому вы прикрепили макет collectionView с помощью TLSpringFlowLayout, измените его владельца на значение по умолчанию, то есть UICollectionViewFlowLayout. Теперь он работает нормально, не занимает много памяти или не использует много процессора.

Кстати, спасибо за такой хороший код, я использовал его в своем приложении.

person Mehul Thakkar    schedule 20.03.2015

Посмотрите на код в классе TLSpringFlowLayout.m. Сам комментарий говорит, что он дает эффект отскока для просмотра коллекции.

      /// The dynamic animator used to animate the collection's bounce
      @property (nonatomic, strong, readwrite) UIDynamicAnimator *dynamicAnimator;

        UIAttachmentBehavior *springBehaviour = [[UIAttachmentBehavior alloc] initWithItem:attributes attachedToAnchor:attributes.center];

        springBehaviour.length = 1.0f;
        springBehaviour.damping = 0.8f;
        springBehaviour.frequency = 1.0f;
        [self.dynamicAnimator addBehavior:springBehaviour];

UIDynamicAnimator — это один из типов анимации в UIKit Dynamics, доступный в iOS 7.

Подробнее см. по этой ссылке: Как создать анимацию отскока UIView?

person Bhoomi Jagani    schedule 20.03.2015