Ios 如何更改CCMenuItemImage的标记值?

Ios 如何更改CCMenuItemImage的标记值?,ios,cocos2d-iphone,menuitem,Ios,Cocos2d Iphone,Menuitem,我有一个ccmen,带有一系列添加了代码的按钮: _viewMenu = [[CCMenu alloc] init]; for (int i = 0; i < _somearray.count; i++) { switchViewMI = [CCMenuItemImage itemWithNormalImage: [_somearray objectAtIndex:i]

我有一个
ccmen
,带有一系列添加了代码的按钮:

_viewMenu = [[CCMenu alloc] init];
    for (int i = 0; i < _somearray.count; i++)
    {
        switchViewMI = [CCMenuItemImage itemWithNormalImage: [_somearray objectAtIndex:i]
                                                 selectedImage: [_somearray objectAtIndex:i]
                                                        target: self
                                                      selector: @selector(switchViewSelected:)];
        switchViewMI.tag = i;
        [_viewMenu addChild:switchViewMI];
    }
_viewMenu=[[CCMenu alloc]init];
对于(int i=0;i<\u somearray.count;i++)
{
switchViewMI=[CCMenuItemImage itemWithNormalImage:[[u somearray objectAtIndex:i]
选择图像:[[u somearray objectAtIndex:i]
目标:自我
选择器:@selector(switchViewSelected:)];
switchViewMI.tag=i;
[_viewmenuaddchild:switchViewMI];
}
我使用
switchViewMI.tag
来标识要调用的函数


我的问题是,我想动态删除一些按钮,因此我必须编辑
标记
。但是我不知道如何访问
\u viewMenu.item
。我怎样才能做到这一点

使用cocos2d v2.1,您可以使用

[_viewMenu.children objectAtIndex:i];

如果您迭代子项并同时尝试删除,则会出现异常。如果您不打算设置按钮“消失”的动画,我只需从菜单中删除所有菜单项,然后从头开始重新运行添加和放置它们的逻辑。

是的,这就是我目前所做的:删除所有菜单项,然后重新运行add方法。我想可能有更优雅的解决方案。但我现在只能将就一下。优雅是没有意义的:这一切都发生在显示屏刷新之间,你永远不会冒在飞行中被“打断”的风险。您的应用程序用户将永远看不到区别:)。