2011-12-04 58 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,有些則不支持。有可能你的問題將通過實例化一個不同的導演對象來解決。