我的iPhone应用程序有两个主要的“视图”:带有一些按钮,文本等的UIViewController和一个发生所有OpenGL ES内容的窗口。当我从UIViewController转换到窗口时(例如当用户点击“播放”时)我只是这样做:
[window ExchangeSubviewAtIndex:0 withSubviewAtIndex:1];
也许这不是理想的做法吗?我不想释放UIViewController使用的资源......我只是希望窗口在前面。 如何设置从UIViewController到窗口的转换动画?
我真的在寻找一个非常简单的淡入淡出动画。
答案 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];
}
}
告诉我这是否有效,祝你好运。