• 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)];
  • 相关阅读:
    Tinkoff Challenge
    Uva 12298 超级扑克2
    BZOJ 1031 字符加密
    HDU 4944 逆序数对
    51nod 1215 数组的宽度
    LA 3126 出租车
    LA 3415 保守的老师
    51nod 1275 连续子段的差异
    Uva 11419 我是SAM
    LA 4043 最优匹配
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3019899.html
Copyright © 2020-2023  润新知