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元素的觸摸,或者我認爲。
我試過了UIControlEventTouchUpInside,UIControlEventTouchUpOutside,UIControlEventTouchDragInside,UIControlEventTouchDragOutside事件。當手指放開時,它們都不會觸發動作!這是有道理的,因爲UIControlEventTouchUpOutside要求手指觸摸到控件的邊界外,我不想要這樣做,但只是從控件釋放手指應觸發該操作! –
感謝Kreiri,我不知道發生了什麼事,但在嘗試了一堆我嘗試UIControlEventTouchUpInside並且工作正常的事情之後!我不明白爲什麼,但我很高興它的工作原理。唯一的怪癖是,當我第一次觸摸按鈕時會觸發事件,並且當我從按鈕上擡起手指時它也會被調用,我只需要後者! –