【问题标题】:One Selector for multiple MenuItem in COcos2dCOcos2d 中多个 MenuItem 的一个选择器
【发布时间】:2011-12-04 13:32:32
【问题描述】:
//CCMenuItem
    CCMenuItem *starMenuItem = [CCMenuItemImage 
                                itemFromNormalImage:@"Button0000.png" selectedImage:@"Fork0002.png" 
                                target:self selector:@selector(starButtonTapped:)];

    CCMenuItem *starMenuItem2 = [CCMenuItemImage 
                                itemFromNormalImage:@"Button0001.png" selectedImage:@"Button0002.png" 
                                target:self selector:@selector(starButtonTapped:)];
    CCMenuItem *starMenuItem3 = [CCMenuItemImage 
                                 itemFromNormalImage:@"Button0003.png" selectedImage:@"Button0004.png" 
                                 target:self selector:@selector(starButtonTapped:)];
    CCMenuItem *starMenuItem4 = [CCMenuItemImage 
                                 itemFromNormalImage:@"Button0005.png" selectedImage:@"Button0006.png" 
                                 target:self selector:@selector(starButtonTapped:)];
    CCMenuItem *starMenuItem5 = [CCMenuItemImage 
                                 itemFromNormalImage:@"Button0007.png" selectedImage:@"Button0008.png" 
                                 target:self selector:@selector(starButtonTapped:)];
    CCMenuItem *starMenuItem6 = [CCMenuItemImage 
                                 itemFromNormalImage:@"Button0009.png" selectedImage:@"Button0010.png" 
                                 target:self selector:@selector(starButtonTapped:)];
    CCMenuItem *starMenuItem7 = [CCMenuItemImage 
                                 itemFromNormalImage:@"Button0011.png" selectedImage:@"Button0012.png" 
                                 target:self selector:@selector(starButtonTapped:)];

    //CCMenu
    CCMenu *starMenu = [CCMenu menuWithItems:starMenuItem,starMenuItem2,starMenuItem3,starMenuItem4,starMenuItem5,starMenuItem6,starMenuItem7,nil];

    starMenu.position = ccp(winSize.width/2  , 25);
    [starMenu alignItemsHorizontally];
    [self addChild:starMenu];


-(void)starButtonTapped:(id)sender {
if (/*press starMenuItem4*/) {
   /*do this*/
}else if(/*press starMenuItem4*/){
 /* do another thing*/
}
}

我所有的 menuItems 都有一个名为""starButtonTapped:" 的通用选择器。但是,我如何区分我在选择器中单击了哪个按钮,以便我可以为每个按钮做不同的事情?我尽量不要使用很多选择器他们很乱。谢谢你的帮助。

【问题讨论】:

    标签: iphone xcode4 cocos2d-iphone


    【解决方案1】:

    您可以使用标签:starMenuItem.tag = 1;

    -(void)starButtonTapped:(CCMenuItem*)sender {
    
      switch(sender.tag) {
       case 1: // starMenuItem pressed 
         /*do this*/
         break;
       case 2: // starMenuItem2 pressed 
         /*do that*/
         break;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      相关资源
      最近更新 更多