Cocos2d iphone 当UIButton位于cocos2d CCLayer内时,如何确定UIButton拖动已完成?

Cocos2d iphone 当UIButton位于cocos2d CCLayer内时,如何确定UIButton拖动已完成?,cocos2d-iphone,uikit,cclayer,Cocos2d Iphone,Uikit,Cclayer,我有一个cocos2d CCLayer类,它既有ccsprite也有uibutton。我希望玩家能够触摸和拖动屏幕上的按钮,当手指被释放时,我想执行一些动作 下面是创建UIButton并添加到图层的代码片段- UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setFrame:CGRectMake(240, 200, 50, 50)]; [[[[CCDirector sharedDirec

我有一个cocos2d CCLayer类,它既有ccsprite也有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];
我可以在cocos2d层内移动UIButton。我的问题是,我如何知道手指何时从UIButton释放


PS/我阅读了Ray Wenderlich关于cocos2d中UIView的教程,也学习了Steffen Itterheim的CoCoCos2D游戏开发,但他们都没有涉及如何管理CCLayer内部UIKit元素的接触,我想是这样。

您尝试过使用
UIControlEventTouchUpInside
/
uicontrolEventTouchOutside
控件吗事件?

我尝试了UIControlEventTouchUpInside、UIControlEventTouchUpOutside、UIControlEventTouchDragInside、UIControlEventTouchDragOutside事件。当手指松开时,它们都不会触发动作!这是有意义的,因为uicontrolEventTouchOutside要求手指触摸控件边界之外,我不希望这样,但只要从控件释放手指就应该触发操作!谢谢Kreiri,我不知道发生了什么,但在尝试了一系列的事情之后,我尝试了UIControlEventTouchUpInside,效果很好!我不明白为什么,但我很高兴它能起作用。唯一奇怪的是,当我第一次触摸按钮时,事件会触发,当我将手指从按钮上提起时,它也会被调用,我只需要后者!