理论基础

RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互。 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被选中状态。继承自Widget。

代码实践

RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互。 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被选中状态。继承自Widget。

static RadioButtonGroup * create ()
创建并返回一个RadioButtonGroup实例。

//添加删除单选按钮
virtual void addRadioButton (RadioButton *radioButton)
添加一个单选按钮到这个组。

virtual void removeRadioButton (RadioButton *radioButton)
从这组删除一个单选按钮。

virtual void removeAllRadioButtons ()
从这一组中删除所有单选按钮。

ssize_t getNumberOfRadioButtons () const
获取分组里面的单选按钮的数量.

//和选中状态有关
RadioButton * getRadioButtonByIndex (int index) const
在一组单选按钮中, 通过索引来选择。

virtual int getSelectedButtonIndex () const
获取选中单选按钮的索引。

virtual void setSelectedButton (int index)
通过索引设置一个单选按钮处于选中状态。

virtual void setSelectedButton (RadioButton *radioButton)
通过指针设置一个单选按钮处于选中状态.

virtual void setSelectedButtonWithoutEvent (int index)
通过单选按钮在组里面的索引来设置选中状态, 但是此方法不会响应事件处理

virtual void setSelectedButtonWithoutEvent (RadioButton *radioButton)
通过单选按钮的指针来设置选中状态, 但是此方法不会响应事件处理

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

void setAllowedNoSelection (bool allowedNoSelection)
设置一个标记允许组里面出现未选择功能。 如果它是允许的,则可以不用选择单选按钮。 如果它是不允许的,那么, 每时每刻都必须选择一个单选按钮,除了它是空的。 默认是不允许的。

bool isAllowedNoSelection () const
查询是否允许组里面存在一个都不选择的情况。

实例:

        // Create a radio button group
RadioButtonGroup* radioButtonGroup = RadioButtonGroup::create();
_uiLayer->addChild(radioButtonGroup); // Create the radio buttons
static const int NUMBER_OF_BUTTONS = ;
float startPosX = widgetSize.width / 2.0f - ((NUMBER_OF_BUTTONS - ) / 2.0f) * buttonWidth;
for(int i = ; i < NUMBER_OF_BUTTONS; ++i)
{
auto filePathNormal = StringUtils::format("cocosui/btn_exercise%02d_n.png", i + );
auto filePathSelected = StringUtils::format("cocosui/btn_exercise%02d_p.png", i + );
RadioButton* radioButton = RadioButton::create(filePathNormal, filePathSelected);
float posX = startPosX + buttonWidth * i;
radioButton->setPosition(Vec2(posX, widgetSize.height / 2.0f));
radioButton->setScale(BUTTON_SCALE);
radioButton->setZoomScale(0.05f);
radioButtonGroup->addRadioButton(radioButton);
_uiLayer->addChild(radioButton);
}
radioButtonGroup->setSelectedButton();

cocos代码研究(17)Widget子类RadioButtonGroup学习笔记的更多相关文章

  1. cocos代码研究(1)Node学习笔记

    理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...

  2. cocos代码研究(5)Action学习笔记

    理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...

  3. cocos代码研究(2)Label学习笔记

    理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...

  4. cocos代码研究(1)sprite学习笔记

    各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...

  5. cocos代码研究(2)Layer学习笔记

    auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...

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

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

  7. cocos代码研究(15)Widget子类CheckBox学习笔记

    理论基础 复选框是一种特定类型的“两状态”按钮,可以处于“选中”和“未选中状态”.继承自AbstractCheckButton.注 AbstractCheckButton继承自Widget类. 代码部 ...

  8. cocos代码研究(14)Widget子类Button学习笔记

    理论基础 表示一个按钮组件. 按钮可以被按下,或者点击, 并且在按下或者点击之后,可以由用户指定一个动作来执行,继承自 Widget. 代码部分 static Button * create ()创建 ...

  9. cocos代码研究(13)Widget子类EditBox学习笔记

    理论基础 一个用来输入文本的类,继承自 Widget , 以及 IMEDelegate. 代码部分 Public枚举类型 enum KeyboardReturnType键盘的返回键类型. enum I ...

随机推荐

  1. GIS-010-ArcGIS JS 三种查询模式(转)

    QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Client.Tasks: 1.QueryTask:是一个进行空间和属性查询的功能类,它可以在某个地图服 ...

  2. GeoServer安装说明-OpenSpirit

    一.安装步骤 1.安装JDK: 2.安装Tomcat:(本测试过程使用JspStudy,需要进行端口设置,并指定Web目录,如:D:\JspStudy\tomcat\webapps) 3.拷贝geos ...

  3. python2.0_day20_bbs系统开发

    BBS是一个最简单的项目.在我们把本节课程的代码手敲一遍后,算是实战项目有一个入门.首先一个项目的第一步是完成表设计,在没有完成表结构设计之前,千万不要动手开发(这是老司机的忠告!)废话不多说,现在我 ...

  4. 通过Nagios监控weblogic服务

    1.前言      前段时间搭建了一套Nagios监控服务,心血来潮想自己写一个脚本,拓展Nagios插件来监控公司的weblogic服务. 环境:weblogic10.3.3.0 . CentOS6 ...

  5. 将Eclipse项目导入到Android studio 中 很多点9图出现问题解决方法

    在build.gradle里添加以下两句: aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false

  6. 更改嵌入式Linux中开机画面----左上角小企鹅图标

    一直想给嵌入式仪表加个开机LOGO,但是没有找到更换的方法.最近在网上收集了一些文章,整理一下一共自己参考.目前也还没有试过这种方法究竟是否可以.但察看Kernel源代码可以知道,Linux-2.6的 ...

  7. 在navicat中新建数据库

    前言: 在本地新建一个名为editor的数据库: 过程: 1.: 2.选择:utf8mb4 -- UTF-8 Unicode字符集,原因在于:utf8mb4兼容utf8,且比utf8能表示更多的字符. ...

  8. UIGestureRecognizer学习笔记2

    The concrete subclasses of UIGestureRecognizer are the following: UITapGestureRecognizer UIPinchGest ...

  9. 【死磕jeestie源码】类型后面三个点(String...)和数组(String[])的区别

    类型后面三个点(String...),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者 ...

  10. android选择图片或拍照图片上传到服务器(包括上传参数)

    From:http://blog.csdn.net/springsky_/article/details/8213898具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 [java ...