/ / Как да намеря подробности за текущата анимация UIView? - uiview, uianimation

Как да намеря подробности за текущата анимация за UIView? - uiview, uianimation

Имам метод за задаване на собственост върху потребител UIView клас. Ако е зададено в рамките на UIView анимационен блок, бих искал да добавя CABasicAnimation към изгледния слой със същата продължителност и облекчаване като UIView анимация. Как да разбера дали съм вътре в UIView блок за анимация и как да получа неговата продължителност и облекчаваща крива?

Отговори:

1 за отговор № 1

Въз основа на този въпрос направих това разширение към UIView блок анимации: UIView + AnimatedProperty.

Тя ви позволява да стартирате CAAnimations когато сетерът се извика от анимационен блок. Пример с cornerRadius е включена.


2 за отговор № 2

Много просто.. Можете да получите всички анимационни клавиши, приложени към вашия изглед, като използвате

[self.YourView.layer animationKeys];

1 за отговор № 3

В документацията за [UIView animateWithDuration] се казва, че

Този метод изпълнява посочените анимации незабавно, използвайки опциите за анимация UIViewAnimationOptionCurveEaseInOut и UIViewAnimationOptionTransitionNone.

Що се отнася до продължителността, вие сами определяте продължителността, така че вече сте това.


0 за отговор № 4

Можете да получите текущата анимация достатъчно лесно. Например, настройка на a CATransaction:

CAAnimation *animation = [self.layer animationForKey:self.layer.animationKeys.firstObject];
[CATransaction begin];
[CATransaction setAnimationDuration:animation.duration];
[CATransaction setAnimationTimingFunction:animation.timingFunction];

// CALayer animation here

[CATransaction commit];