Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c CCMenuItemImage-设置SelecteImage和设置Normal Image_Objective C_Ios_Cocos2d Iphone - Fatal编程技术网

Objective c CCMenuItemImage-设置SelecteImage和设置Normal Image

Objective c CCMenuItemImage-设置SelecteImage和设置Normal Image,objective-c,ios,cocos2d-iphone,Objective C,Ios,Cocos2d Iphone,在使用CCMenuItemImage时遇到此问题。似乎我必须将SelectedImage和NormalImage设置为不同的CCSprites,否则会使我的应用程序崩溃。(我计划以后为两个州使用唯一资产)CCMenuItemImage*ItemButton;已定义/初始化 以下操作不起作用: CCSprite *updatedSprite = [CCSprite spriteWithFile:@"1_button.png"]; [ItemButton setNormalImage:updated

在使用CCMenuItemImage时遇到此问题。似乎我必须将SelectedImage和NormalImage设置为不同的CCSprites,否则会使我的应用程序崩溃。(我计划以后为两个州使用唯一资产)CCMenuItemImage*ItemButton;已定义/初始化

以下操作不起作用:

CCSprite *updatedSprite = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setNormalImage:updatedSprite];
[ItemButton setSelectedImage:updatedSprite];
以下方法确实有效:

CCSprite *updatedSpriteNormal = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setNormalImage:updatedSpriteNormal];

CCSprite *updatedSpriteSelected = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setSelectedImage:updatedSpriteSelected];

我很想知道为什么会发生这种情况,我做了一些挖掘,但没有找到任何确定的东西。任何洞察都很好。

当您设置SelectedImage时,精灵将作为子对象添加到ItemButton,因此它有一个父对象。您必须创建CCSprite的第二个实例来设置NormalImage,因为cocos2d的节点层次结构将始终阻止将已经有父对象的对象添加为子对象。

谢谢您的回答!这是有道理的,我只是有点难以理解幕后发生了什么。