iPhone:使用Core Animation转换视图

时间:2009-05-20 21:44:08

标签: iphone core-animation objective-c cocoa-touch

在Mac上,视图的简单交叉渐变转换(没有任何自定义关键帧时序)的最佳方法是执行以下摘录:

[[self animator] replaceSubview:aView with:bView];

不幸的是iPhone上没有动画制作者属性。在iPhone上这样做最好的选择是什么?是在每个视图上设置alpha通道吗?示例代码非常好。

感谢。

1 个答案:

答案 0 :(得分:0)

在iphone上制作动画视图的基本方法是使用UIView beginAnimations和commitAnimations调用。它们允许您修改视图的可动画属性并对这些更改进行动画处理。

例如,我有一个隐藏的自定义视图,并使用此方法显示:

- (void) showAView:(CustomAView *)aView
{
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.5];    
  aView.frame = CGRectMake(0.0f, 110.0f , aView.frame.size.width, aView.frame.size.height);
  [UIView commitAnimations];  
}

- (void) hideAView:(CustomAView *)aView
{
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.5];  
  aView.frame = CGRectMake(0.0f, self.view.frame.size.height, aView.frame.size.width, aView.frame.size.height);    
  [UIView commitAnimations];
}

通过在UIView beginAnimations / commitAnimations中包装框架属性更改,更改已应用标准动画。

您可以使用UIView动画类方法为动画添加其他属性,例如。

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];