Удалить UIVIew из SuperView с анимацией
-
06-07-2019 - |
Вопрос
Я могу анимировать добавление UIView в свое приложение, оно выглядит очень красиво, так что, спасибо, яблоко.
Однако, как мне анимировать удаление этого представления из супер просмотра? Р>
Я использую:
CATransition *animation = [CATransition animation];
[animation setDuration:1];
[animation setType:kCATransitionReveal];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:animation forKey:kCATransitionReveal];
для анимации в " переход ... как вы анимируете " out " переход ???? р>
Решение
Анимируйте ваш вид, чтобы он перемещался за пределы экрана / сжимался / расширялся / исчезал, а затем выполняйте фактическое удаление по окончании анимации.
Вы можете сделать это, изменив свойства представления (позиция / размер / смещение) между блоком beginAnimations / commitAnimations. UIKit будет затем анимировать эти свойства в течение указанного времени. Р>
Например, что-то вроде;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.30f];
view.transform =
CGAffineTransformMakeTranslation(
view.frame.origin.x,
480.0f + (view.frame.size.height/2) // move the whole view offscreen
);
background.alpha = 0; // also fade to transparent
[UIView commitAnimations];
В уведомлении о завершении анимации вы можете удалить представление.