使用场景转换动画UIKit项目

时间:2011-12-04 23:15:56

标签: iphone uikit cocos2d-iphone

我在我的图层,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,您会注意到标签的动画带有过渡,但按钮没有。

2 个答案:

答案 0 :(得分:0)

我遇到了与UIWebView相同的问题,我不得不使用UIView动画来移动它们

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

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

虽然 BE WARNED ,但与以下内容相比,UIView动画块动画以不同的速度动画:

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

我还没有找到一个完美的解决方案,但我发现,如果我将UIView褪去,因为我正在制作动画,它让它显得更加流畅

答案 1 :(得分:0)

Cocos2D中有四种不同类型的directors。有些人支持UIKit而其他人则不支持。您可以通过实例化不同的控制器对象来解决您的问题。