2012-10-22 59 views
1

我有一個cocos2d CCLayer類,它既有CCSprites也有UIButtons。我希望玩家能夠在屏幕上觸摸並拖動UIButtons,當手指放開時我想執行一些操作。當UIButton位於cocos2d CCLayer中時,如何找出UIButton的拖動完成?

這裏是我的代碼創建的UIButton,並增加了該層段 -

UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button setFrame:CGRectMake(240, 200, 50, 50)]; 

[[[[CCDirector sharedDirector] openGLView] window] addSubview:button]; 

[button addTarget:self action:@selector(buttonMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside]; 

我能夠移動的UIButton的cocos2d的層內。我的問題是,我怎樣才能知道什麼時候手指從UIButton中釋放出來?

PS /我通過Ray Wenderlich的關於cocos2d中的UIView的教程以及通過Steffen Itterheim瞭解Cocos2d遊戲開發,但都沒有介紹如何管理CCLayer內UIKit元素的觸摸,或者我認爲。

回答

0

您是否嘗試過使用UIControlEventTouchUpInside/UIControlEventTouchUpOutside控件事件?

+0

我試過了UIControlEventTouchUpInside,UIControlEventTouchUpOutside,UIControlEventTouchDragInside,UIControlEventTouchDragOutside事件。當手指放開時,它們都不會觸發動作!這是有道理的,因爲UIControlEventTouchUpOutside要求手指觸摸到控件的邊界外,我不想要這樣做,但只是從控件釋放手指應觸發該操作! –

+0

感謝Kreiri,我不知道發生了什麼事,但在嘗試了一堆我嘗試UIControlEventTouchUpInside並且工作正常的事情之後!我不明白爲什麼,但我很高興它的工作原理。唯一的怪癖是,當我第一次觸摸按鈕時會觸發事件,並且當我從按鈕上擡起手指時它也會被調用,我只需要後者! –