2011-12-04 60 views
2

我已经添加了几个UIKit项目到我的图层,一个UITableView和一个UITextField。动画UIKit项目与场景转换

如何在转换过程中让这些项目与场景的其余部分一起动画?

我曾经尝试都通过CCDirector添加项目,

[[[CCDirector sharedDirector] openGLView] addSubview:tableView]; 

除了使用CCUIViewWrapper类。

无论哪种方式,cocos2d项目都会转换,但UIKit项目仍保留在屏幕上,并且不会与屏幕的其余部分进行动画制作。

HelloWorldLayer *scene = (HelloWorldLayer *)[HelloWorldLayer scene]; 
[[CCDirector sharedDirector] replaceScene:[CCTransitionZoomFlipX transitionWithDuration:0.5 scene:(CCScene *)scene]]; 

只是用于测试中,我使用这里示出的旋转按钮例如: http://www.cocos2d-iphone.org/forum/topic/6889 并加入到以上按钮动作的replaceScene代码。

如果你还添加了一个CCLabelTTF到屏幕上,你会注意到标签带有过渡动画,但按钮没有。

回答

0

我遇到了一个UIWebView同样的问题,我不得不使用的UIView动画将它们移动

[UIView animateWithDuration:1.0f animations:^{ 
     //Animation 

    }completion:^(BOOL finished) { 
     if(finished){ 
      //Completed 
     } 
    }]; 

虽然被警告 UIView的动画块动画以不同的速度相比:

[[CCDirector sharedDirector] replaceScene:[CCTransitionZoomFlipX transitionWithDuration:0.5 scene:(CCScene *)scene]]; 

我还没有找到一个完美的解决方案,但我发现因为我是动画UIView的,如果我褪出来,因为我是动画,它使得它看起来很多平稳er

0

Cocos2D中有四种不同类型的directors。有些支持UIKit,有些则不支持。有可能你的问题将通过实例化一个不同的导演对象来解决。