Имам метод за задаване на собственост върху потребител 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];