Cocos2d中从场景切换到UIView
来源:互联网 发布:网络平凡出现遇害事件 编辑:程序博客网 时间:2024/05/22 05:19
第一种:直接从场景切换到UIViewController视图(网上流传的版本)
- (void) showUIViewController:(UIViewController *) controller
{
[[Director sharedDirector] pause];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.5];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:[[Director sharedDirector] openGLView] cache:YES];
[[[Director sharedDirector] openGLView] addSubview:controller.view];
[UIView commitAnimations];
}
- (void) showUIViewController:(UIViewController *) controller
{
}
从UIViewController视图切换到场景
//返回场景视图
- (void) hideUIViewController:(UIViewController *) controller
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animDone:finished:context:)];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:[[Director sharedDirector] openGLView] cache:YES];
[controller.view removeFromSuperview];
[UIView commitAnimations];
}
-(void)animDone:(NSString*) animationID finished:(BOOL) finished context:(void*) context
{
[[Director sharedDirector] resume];
}
//返回场景视图
- (void) hideUIViewController:(UIViewController *) controller
{
}
-(void)animDone:(NSString*) animationID finished:(BOOL) finished context:(void*) context
{
}
备注一点:
代码1:[[[[CCDirector sharedDirector] openGLView] window]addSubview:viewController.view];
效果:添加的view会随着window是横屏还是竖屏变化,添加之后如果view下面覆盖了一个cocos2d的按钮,点击按钮的区域按钮不响应点击。
代码2:[[[CCDirector sharedDirector] openGLView]addSubview:viewController.view];
效果:不随着变化,并且底部的按钮相应点击
效果:添加的view会随着window是横屏还是竖屏变化,添加之后如果view下面覆盖了一个cocos2d的按钮,点击按钮的区域按钮不响应点击。
代码2:[[[CCDirector sharedDirector] openGLView]addSubview:viewController.view];
效果:不随着变化,并且底部的按钮相应点击
第二种:通过RootViewController切换 (自己写的)
1、默认情况下面,cocos2d 模板并没有在AppDelegate里面包含一个RootViewController的属性,因此必须手动添加一个。
跳转到AppDelegate.h文件,并添加下面的代码:
@property (nonatomic, retain) RootViewController*viewController;
然后跳转到AppDelegate.m,synthesize之:
@synthesize viewController;
2、添加
#import "AppDelegate.h"
- (void) showUIViewController:(UIViewController *) controller
{
AppDelegate *delegate=(AppDelegate *)[UIApplication sharedApplication].delegate;
[delegate.viewController presentModalViewController:controller animated:YES];
}
从UIViewController视图切换到场景
//返回场景视图
第一种:在UIViewController调用dismissModalViewControllerAnimated 来返回,例如:
[self dismissModalViewControllerAnimated:YES];
第二种使用委托,让RootViewController来控制,例如
[appdelegate.viewController dismissModalViewControllerAnimated:YES];
- Cocos2d中从场景切换到UIView
- Cocos2d中从场景切换到UIViewController视图方法总结
- Cocos2d中从场景切换到UIViewController视图方法总结
- Cocos2d中从场景切换到UIViewController视图方法总结
- Cocos2d中从场景切换到UIViewController视图方法总结
- cocos2d-x中场景之间的切换
- cocos2d-x 33中 场景切换
- cocos2d 场景切换方式
- cocos2d场景切换效果
- Cocos2D-iphone 场景切换
- cocos2d场景切换效果
- cocos2d-x 场景切换
- cocos2d-x 场景切换
- cocos2d-html5 切换场景
- Cocos2d 场景切换特效
- cocos2d-x 场景切换
- cocos2d 场景切换特效
- Cocos2d-x场景切换
- C语言中的异常处理
- PHP 中导出EXCEL,最原始方法,不用插件
- 黑马程序员_字符串各种操作
- mapguide坐标转换
- 使用Java自带的keytool命令
- Cocos2d中从场景切换到UIView
- VC++获取网卡MAC、硬盘序列号、CPU ID、BIOS编号
- 什么是java序列化,如何实现java序列化?
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- GridView 72般绝技
- verilog 笔记
- WideCharToMultiByte和MultiByteToWideChar函数的用法
- 黑马程序员_加载CSS的四种方式以及CSS代码格式
- 从程序员到技术总监,分享10年开发经验