Удалить UIVIew из SuperView с анимацией

Я могу оживить добавление UIView в мое приложение, оно выглядит очень красиво, поэтому спасибо apple.

однако, как мне анимировать удаление этого представления из супер-представления?

Я:

CATransition *animation = [CATransition animation];
[animation setDuration:1];
[animation setType:kCATransitionReveal];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:animation forKey:kCATransitionReveal];

для анимации перехода" in"... как вы анимируете переход "вне"????

1 ответов


анимируйте свой вид, чтобы он перемещался за пределы экрана/сжимался/расширялся / исчезал, а затем выполняйте фактическое удаление, когда анимация заканчивается.

вы можете сделать это, изменив свойства представления (положение/размер/смещение) между блоком 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];

в уведомлении о завершении анимации вы можете удалить представление.