После выхода iOS 7 у разработчиков появилось очень много новых инструментов для создания интересных и увлекательных эффектов и анимаций. Но уместность использования многих из них по-прежнему остаётся под вопросом. Изучив некоторые из них, мы решили в новом нашем проекте сделать анимацию, аналогичную реализованной Apple в приложении «Сообщения».
Для реализации такого поведения нам пришлось заменить используемый сначала экземпляр класса UITableView на UICollectionView, так как только последний был адаптирован Apple для работы с объектом-аниматором UIDynamicAnimator.
После этого мы переопределили стандартный UICollectionViewFlowLayout:
[gist id= 7153677 file=DVCollectionViewFlowLayout.h]
в котором определили объект UIDynamicAnimator и переопределили необходимые для реализации функции:
[gist id= 7153677 file=DVCollectionViewFlowLayout.m]
Динамическое поведение становится активным, когда вы его добавляете к объекту- аниматору, который является экземпляром UIDynamicAnimator. Аниматор определяет контекст в котором динамическое поведение выполняется.
Объект UIAttachmentBehavior определяет связь между динамическим элементом класса UICollectionViewLayoutAttributes и точкой item.center. Когда точка перемещается, присоединенный элемент также перемещается. C помощью свойств length, damping и frequency можно настроить поведение нужным нам образом.
[gist id= 7153677 file= UIAttachmentBehavior]
Также важно правильно подобрать resistanceFactor
[gist id= 7153677 file= resistanceFactor]
Другие статьи по теме: