Как я могу перейти к концу анимации UIViewPropertyAnimator? - PullRequest
1 голос
/ 03 октября 2019

У меня есть переменная с UIViewPropertyAnimator *, которая в данный момент находится в процессе анимации. Например, вот UIViewPropertyAnimator с именем fadeOutAnimator, который "затухает" UILabel (с именем label), а затем удаляет его из своего суперпредставления:

UIViewPropertyAnimator *fadeOutAnimator = [[UIViewPropertyAnimator alloc] initWithDuration:1.5f curve:UIViewAnimationCurveLinear animations:^{
    [label setAlpha:0.0f];
}];

[fadeOutAnimator addCompletion:^(UIViewAnimatingPosition finalPosition) {
    [label removeFromSuperview];
}];

Скажем, что какое-то другое событиепроисходит в моем приложении, что заставляет меня хотеть, чтобы эта анимация пропускалась до конца и выполняла ее обработчик завершения.

Я пытался использовать метод stopAnimation с обоими аргументами YES и NO, но в обоих случаях отображение анимации просто останавливается при текущем ходе;оно не продвигается до конца.

Как я могу сделать так, чтобы анимация сразу пропускалась до конца и выполняла обработчик ее завершения?

1 Ответ

1 голос
/ 03 октября 2019

Это можно сделать, установив для свойства UIViewPropertyAnimator *1003* 1.0 *1004* значение *1004* (т. Е. Выполнено на 100%). Пример:

[fadeOutAnimator setFractionComplete:1.0f];

Это немедленно переводит анимацию в конечное состояние и инициирует вызов обработчика (ей) завершения (если есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...