7

我可以为我的应用添加 UIView 动画,它看起来非常漂亮,所以谢谢苹果。

但是,如何为从超级视图中删除此视图设置动画?

我正在使用:

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

动画“in”过渡......你如何动画“out”过渡????

4

1 回答 1

25

为您的视图设置动画,使其移出屏幕/缩小/展开/淡入淡出,然后在动画结束时进行实际移除。

您可以通过在 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];

在动画结束通知中,您可以删除视图。

于 2009-03-09T21:33:47.497 回答