2009-05-20 112 views
1

在Mac上,为视图的简单交叉渐变过渡(没有任何自定义的关键帧定时)的最佳方式转变的意见是做一些事情,如以下摘录:iPhone:与核心动画

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

不幸的是,动画师的财产不适用于iPhone。在iPhone上做这个最好的选择是什么?它是否在每个视图上设置了Alpha通道?示例代码会很好。

谢谢。

回答

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]; 
+0

嘿保罗,你可以进一步细化,通过褪色视图和褪色的另一个?这个只是隐藏了一个视图。它并不像上面的动画设计师那样精确地处理过渡。 – Coocoo4Cocoa 2009-05-20 22:14:17