UIViewController和EAGLView之间的动画过渡

时间:2010-10-31 05:04:31

标签: iphone opengl-es uiviewcontroller

我的iPhone应用程序有两个主要的“视图”:带有一些按钮,文本等的UIViewController和一个发生所有OpenGL ES内容的窗口。当我从UIViewController转换到窗口时(例如当用户点击“播放”时)我只是这样做:

[window ExchangeSubviewAtIndex:0 withSubviewAtIndex:1];

也许这不是理想的做法吗?我不想释放UIViewController使用的资源......我只是希望窗口在前面。 如何设置从UIViewController到窗口的转换动画

我真的在寻找一个非常简单的淡入淡出动画。

1 个答案:

答案 0 :(得分:2)

您是否尝试过普通的旧UIViewAnimation子句?也许玩隐藏或alpha的视图属性,如果你想让它淡出为黑色,你需要[Window setBackgroundColor:[UIColor blackColor]];第一。 确保动画发生在主线程中。示例代码如下 view1是窗口的第一个子视图,view2是窗口的另一个子视图。

- (void)switchToView1 {
[UIView beginAnimations:@"fadeOut1" context:NULL];
[UIView setAnimationDuration:.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
view1.hidden = YES;
[UIView commitAnimations];  
}

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void    *)context {
if ([@"fadeOut1" isEqualToString:animationID] && [finished intValue] == 1) {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:.5];
    view2.hidden = NO;
    [UIView commitAnimations];
}
}

告诉我这是否有效,祝你好运。