Выполняем несколько анимаций последовательно с конечным callback блоком
25 JUN 2015
На днях потребовалось написать класс, который бы умел выполнять анимации в сериальном порядке, которые мы бы передавали в массиве. Так же требовалось, чтобы по окончанию всех анимаций был общий callback блок. Хотелось бы поделиться с вами получившимся результатом.
Во-первых, какие свойства должен уметь класс, который выполняет анимации? Я обозначил для себя несколько свойств, которые определил в интерфейсе класса:
Собственно, я посчитал, что этих свойств вполне достаточно для работы класса.
Во-вторых, я обозначил два метода:
Метод инициализатор:
И метод, в который бы мы передавали массив с блоками анимаций и completionBlock:
Перейдем к реализации класса!
С методом инициализации в принципе все довольно ожидаемо:
И наконец, сам метод, который выполняет анимации:
Небольшая цитата одного из источников данного решения:
“UIView key-frame animations require the use of 2 methods, the first of which is similar to the other block-based animation methods:
This takes floats for duration and delay, a bit-mask for options and blocks for animation and completion - all pretty standard in the world of UIView animations. The difference comes in the method we call inside the animation block:
This method is used to add the fixed points within the animation sequence.”
На этом все! Возможно есть еще варианты решения данной задачи, но долгими поисками, я для себя нашел именно такое.
Всем спасибо за внимание!