Можно ли выполнять анимацию с помощью Core Animation с использованием блоков на Mac аналогично тому, как это можно сделать на iOS? Я хотел бы иметь возможность настроить блоки завершения в конце анимации для удаления просмотров и т. д. Я знаю, что этого можно добиться с помощью делегатов, но, очевидно, весь смысл блоков с анимацией заключается в том, чтобы избежать этой боли.
Основная анимация с блоками на Mac?
Ответы (3)
CATransaction + (void) setCompletionBlock: (void (^) (void)) block
Объект блока, вызываемый после завершения анимации для этой группы транзакций.
[CATransaction begin];
[CATransaction setAnimationDuration:5.0];
[CATransaction setCompletionBlock:^{
// this will be done when animation has completed
}];
//do some things to your layers
[CATransaction commit];
person
mahal tertin
schedule
26.04.2013
Twitter предлагает TwUI, который использует базовую анимацию с блоками. Это может помочь вам.
https://github.com/twitter/twui
https://github.com/twitter/twui/blob/master/lib/UIKit/TUIView+Animation.m
@interface TUIViewAnimation : NSObject <CAAction>
{
/* snip */
void (^animationCompletionBlock)(BOOL finished);
person
Kazuki Sakamoto
schedule
21.09.2011
Иногда NSAnimationContext и NSAnimationGroup имеют свойства completionHandler
, которым можно назначать блоки, но многие другие — нет.
person
Caleb
schedule
26.04.2013