cocos代码研究(25)Widget子类PageView学习笔记
基础理论
ListView控件是一个显示滚动项目列表的视图组。 列表项是通过使用addChild或insertDefaultItem插入到列表中的,继承自ScrollView。
代码实践
static ListView * create()
创建一个空ListView。
void setItemModel (Widget *model)
设定一个ListView的模型。 当调用pushBackDefaultItem,该模型将作为一个蓝图,新副本将被插入到ListView控件。
void pushBackDefaultItem ()
插入一个默认项(通过克隆模式创建)到ListView的尾部。
void insertDefaultItem (ssize_t index)
插入一个默认项(通过克隆模式创建)到ListView的指定位置。
void pushBackCustomItem (Widget *item)
插入一个自定义项到ListView的尾部。
void insertCustomItem (Widget *item, ssize_t index)
插入自定义窗口小控件到ListView中指定索引处。
void removeLastItem ()
删除ListView最后一个项目
void removeItem (ssize_t index)
在给定索引处删除一个项目
void removeAllItems ()
删除当前ListView中的所有项目。
Widget * getItem (ssize_t index) const
返回一个给定的索引处的项目。
Vector< Widget * > & getItems ()
返回ListView中的所有项目。
ssize_t getIndex (Widget *item) const
返回指定窗口小控件的索引。
void setGravity (Gravity gravity)
设置的ListView引力。
void setItemsMargin (float margin)
设置ListView中每一项之间的边距。
float getItemsMargin () const
查询ListView每个项之间的边距。
ssize_t getCurSelectedIndex () const
查询当前选中控件的索引。
void addEventListenerListView (Ref *target, SEL_ListViewEvent selector)
添加ListView点击事件的回调,ListView中的一个项目被点击将会调用回调函数。
void addEventListener (const ccListViewCallback &callback)
添加ListView点击事件的回调,ListView中的一个项目被点击将会调用回调函数。
void requestRefreshView ()
手动刷新view和ListView的布局。 该方法将列表视图内容标记为dirty,内容视图将在下一帧刷新。
void refreshView ()
更新ListView的视图。
实例:
// Create the list view ex
ListView* listView = ListView::create();
// set list view ex direction
listView->setDirection(ui::ScrollView::Direction::HORIZONTAL);
listView->setTouchEnabled(true);
listView->setBounceEnabled(true);
listView->setBackGroundImage("cocosui/green_edit.png");
listView->setBackGroundImageScale9Enabled(true);
listView->setContentSize(Size(, ));
listView->setPosition(Vec2((widgetSize.width - backgroundSize.width) / 2.0f +
(backgroundSize.width - listView->getContentSize().width) / 2.0f,
(widgetSize.height - backgroundSize.height) / 2.0f +
(backgroundSize.height - listView->getContentSize().height) / 2.0f));
listView->addEventListener((ui::ListView::ccListViewCallback)CC_CALLBACK_2(UIListViewTest_Horizontal::selectedItemEvent, this));
listView->setScrollBarPositionFromCorner(Vec2(, ));
_uiLayer->addChild(listView); // add custom item
for (int i = ; i < count / ; ++i)
{
Button* custom_button = Button::create("cocosui/button.png", "cocosui/buttonHighlighted.png");
custom_button->setName("Title Button");
custom_button->setScale9Enabled(true);
custom_button->setContentSize(default_button->getContentSize()); Layout* custom_item = Layout::create();
custom_item->setContentSize(custom_button->getContentSize());
custom_button->setPosition(Vec2(custom_item->getContentSize().width / 2.0f, custom_item->getContentSize().height / 2.0f));
custom_item->addChild(custom_button); listView->pushBackCustomItem(custom_item);
}
cocos代码研究(25)Widget子类PageView学习笔记的更多相关文章
- cocos代码研究(24)Widget子类PageView学习笔记
理论基础 PageView类又称Layout的管理器,可以让用户在多个Layout之间左右或者上下切换显示,继承自 Layout . 代码实践 static PageView * create ()创 ...
- cocos代码研究(1)Node学习笔记
理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...
- cocos代码研究(5)Action学习笔记
理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...
- cocos代码研究(2)Label学习笔记
理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...
- cocos代码研究(1)sprite学习笔记
各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...
- cocos代码研究(2)Layer学习笔记
auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...
- cocos代码研究(22)Widget子类Layout学习笔记
理论基础 一个包含控件的容器. 子节点可以根据布局类型重新排序,它还可以开启剪裁,设置背景图像和颜色.继承自Widget,以及LayoutProtocol. 被 HBox, PageView, Rel ...
- cocos代码研究(17)Widget子类RadioButtonGroup学习笔记
理论基础 RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互. 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被 ...
- cocos代码研究(16)Widget子类RadioButton学习笔记
理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...
随机推荐
- MySQL<表单&集合查询>
表单查询 简单查询 SELECT语句 查询所有字段 指定所有字段:select 字段名1,字段名2,...from 表名; select * from 表名; 查询指定字段 select 字段名1,字 ...
- osgEarth2.8添加模型
#include <osgEarthDrivers/model_simple/SimpleModelOptions> SimpleModelOptions modelOptions; mo ...
- m4a文件在iOS上的流媒体播放
Date: 2016-03-23 Title: m4a文件在iOS上的流媒体播放 Tags: m4a, mp4, iOS, Android URL: m4a-streaming-play-on-mob ...
- Effective C++ —— 杂项讨论(九)
条款53 : 不要轻忽编译器的警告 请记住: 1. 严肃对待编译器发出的警告信息.努力在你的编译器的最高(最严苛)警告级别下争取“无任何警告”的荣誉. 2. 不要过度倚赖编译器的报警能力,因为不同的编 ...
- KVO的用法、底层实现原理
KVO的用法 KVO也就是key-value-observing(即键值观察),利用一个key来找到某个属性并监听其值得改变.用法如下: 添加观察者 在观察者中实现监听方法,observeValueF ...
- Apktool源码解析——第二篇
上一篇讲到ApkDecoder这个类,大部分调用到还是Androlib类,而且上次发现brutall的代码竟然不是最新的,遂去找iBotP.的代码了. 今天来看Androlib的代码: private ...
- java基础---->数字签名算法的介绍
数字签名(又称公钥数字签名)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法.关于数字签名的介绍,可以参见百度百科:http://baike.baidu.c ...
- GMT时间转换为当地时间的方法
1.取得当地时间与GMT时间的时间差 (new Date()).getTimezoneOffset() //单位为分钟 2.GMT时间加上与当地时间的时间差 (new Date(GMTTime)) ...
- puremvc TS源码 (未测试...)
根据as的puremvc修改的,尚未具体测试.... https://files.cnblogs.com/files/gamedaybyday/puremvc_ts.rar 补充一个小游戏puremv ...
- Egret3D学习笔记一 (Unity插件使用)
一 官方教程: http://developer.egret.com/cn/github/egret-docs/Engine3D/getStarted/getStarted/index.html 大部 ...