CCMenu 事件传参

今天看到OC对UIButton的封装,可以自定响应事件的 今天就拿CCMenuItemImage做实验

 

首先在.h文件 

 

CCMenuItemImage* DidItem(const char*imgName,SEL_MenuHandlerm_pfnSelectior);//声明自己的方法

点cpp文件

CCMenuItemImage* HelloWorld::DidItem(constchar*imgName,SEL_MenuHandler m_pfnSelectior){

    CCMenuItemImage*item=CCMenuItemImage::create(imgName, imgName, this, m_pfnSelectior);

    return item;

}

调用

 SEL_MenuHandler m_pfnSelectior1 = (SEL_MenuHandler)(&HelloWorld::menuCloseCallback);

    SEL_MenuHandler m_pfnSelectior2 = (SEL_MenuHandler)(&HelloWorld::menu1Callback);

    CCMenuItemImage*itemImg=HelloWorld::DidItem("Icon.png", m_pfnSelectior1);

    CCMenuItemImage*itemImg1=HelloWorld::DidItem("Icon.png", m_pfnSelectior2);

    itemImg1->setPosition(0, 100);

    CCMenu* pMenu = CCMenu::create(itemImg,itemImg1, NULL);

    pMenu->setPosition(ccp(70, size.height));

    this->addChild(pMenu);

不但可以封装他的初始化 还可以自定义他的响应回调方法;

 

千万不要问我 tag不能解决吗?解决是肯定的! 会有一些局限性!

 

OC 事件自定义

 

- (UIButton *)buttonWithFrame:(CGRect)frame action:(SEL)action

{

    UIImage *buttonBackgroundImage = [[UIImage imageNamed:@"button_background.png"]stretchableImageWithLeftCapWidth:5 topCapHeight:5];

    UIImage *disabledButtonBackgroundImage = [[UIImageimageNamed:@"button_background_disabled.png"] stretchableImageWithLeftCapWidth:5topCapHeight:5];

    

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    button.frame = frame;

    [button setBackgroundImage:buttonBackgroundImage forState:UIControlStateNormal];

    [button setBackgroundImage:disabledButtonBackgroundImageforState:UIControlStateDisabled];

    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    [button setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];

    [button addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button];

    

    return button;

}

 

调用 

loginButton = [self buttonWithFrame:CGRectMake(20, 100, 280, 40)action:@selector(loginButtonPressed)];

 

posted on 2013-04-14 10:26  jack_yan  阅读(237)  评论(0编辑  收藏  举报