Простое создание одновременных и последовательных анимаций

Когда используете animateWithDuration, то анимации постоянно конфликтуют между собой. А для одновременных анимаций проще всего делать «nested animations» (но при этом блоки animateWithDuration, вложены друг в друга).

Проблему решает библиотека RZViewActions:
https://github.com/Raizlabs/RZViewActions

Базируется на animateWithDuration, но при этом есть 3 основных объекта:
1)анимация;
2)группа (для параллельных анимаций);
3)последовательность (для последовательных анимаций).

Группа и последовательность инициализируются через массив объектов-анимаций и при этом унаследованы от класса анимации. Т.е. можно из объектов анимации построить большое сложное дерево. Получается что-то вроде ReactiveCocoa (но не такой сложный) и PromiseKit (но без проблем поддерживает iOS 7):
— анимации не обязательно вкладывать друг в друга;
— теоретически можно связать анимации между собой анимации через внешние переменные.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *