cocos代码研究(16)Widget子类RadioButton学习笔记

理论基础

RadioButton是一种特定类型的两状态按钮,它与复选框相似。它可以 和RadioButtonGroup一起使用,形成一个"组"。继承自AbstractCheckButton,AbstractCheckButton继承自Widget。

代码部分

void addEventListener (const ccRadioButtonCallback &callback)
注册一个回调函数, 它将在单选按钮被选中或者取消的时候被调用.

bool isSelected () const
查询是否选中复选框。

void setSelected (bool selected)
修改复选框的状态 设置True会使复选框变为“选中状态”,否则传False会使复选框变为“未选中状态”

void loadTextures (const std::string &background, //背景普通状态图片的名字。
const std::string &backgroundSelected, //背景选择状态图片的名字。
const std::string &cross, //勾选选中状态图片的名字。
const std::string &backgroundDisabled, //背景禁用状态图片名字。
const std::string &frontCrossDisabled, //勾选禁用状态图片名字。
TextureResType texType=TextureResType::LOCAL) //
加载所有纹理并初始化一个复选框。

void loadTextureBackGround (const std::string &backGround, TextureResType type=TextureResType::LOCAL)
加载背景普通状态纹理

void loadTextureBackGroundSelected (const std::string &backGroundSelected, TextureResType texType=TextureResType::LOCAL)
加载背景选中状态纹理的图片

void loadTextureFrontCross (const std::string &crossTextureName, TextureResType texType=TextureResType::LOCAL)
加载勾选选中状态的纹理图片

void loadTextureBackGroundDisabled (const std::string &backGroundDisabled, TextureResType texType=TextureResType::LOCAL)
加载背景禁用状态纹理的图片

void loadTextureFrontCrossDisabled (const std::string &frontCrossDisabled, TextureResType texType=TextureResType::LOCAL)
加载勾选禁用状态的纹理图片

virtual Size getVirtualRendererSize () const override
获取虚拟渲染节点的尺寸

virtual Node * getVirtualRenderer () override
控件的内部渲染节点。 例如,一个按钮的虚拟渲染节点是它的纹理节点。

void setZoomScale (float scale)
当用户按下复选框时,按钮将会缩放到一个比例 最后复选框的缩放值等于(复选框原尺寸+ _zoomScale)

float getZoomScale () const
返回一个缩放比例

Sprite * getRendererBackground () const
返回背景普通状态的渲染节点

Sprite * getRendererBackgroundSelected () const
返回背景选择状态的渲染节点

Sprite * getRendererFrontCross () const
返回前景普通状态的渲染节点

Sprite * getRendererBackgroundDisabled () const
返回背景禁用状态的渲染节点

Sprite * getRendererFrontCrossDisabled () const
返回前景禁用状态的渲染节点

实例:

        Size widgetSize = _widget->getContentSize();
        
        // Create a radio button group
        _radioButtonGroup = RadioButtonGroup::create();
        _uiLayer->addChild(_radioButtonGroup);
        
        // Create the radio buttons
        static const int NUMBER_OF_BUTTONS = 5;
        startPosX = widgetSize.width / 2.0f - ((NUMBER_OF_BUTTONS - 1) / 2.0f) * BUTTON_WIDTH;
        for(int i = 0; i < NUMBER_OF_BUTTONS; ++i)
        {
            RadioButton* radioButton = RadioButton::create("cocosui/radio_button_off.png", "cocosui/radio_button_on.png");
            float posX = startPosX + BUTTON_WIDTH * i;
            radioButton->setPosition(Vec2(posX, widgetSize.height / 2.0f + 10));
            radioButton->setScale(1.2f);
            _radioButtonGroup->addRadioButton(radioButton);
            _uiLayer->addChild(radioButton);
        }

 

转载于:https://www.cnblogs.com/damowang/p/4861408.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值