Cocos2d-x滚动列表具体解释(CCScrollView的使用)
今天要写一个滚动列表功能,类似以下这样。(图片资源都是自己从天天酷跑里面抠的,仅用于学习方便)
首先,这样一个列表就和iOS里面的UITableView没什么两样,当然,Android中肯定也存在类似的控件。
在cocos2d-x引擎中參照ios中的UITableView实现了一个叫做CCTableView的类,用于创建列表,对于熟悉ios程序设计的人来说,这个内容应该是非常好理解的。
以下就介绍下CCTableView。
首先,mark几个比較好的博文。
Cocos2d-x CCTableView实现列表:http://www.tuicool.com/articles/viaQn2
cocos2d-x CCTableView:http://www.cnblogs.com/sevenyuan/archive/2013/07/25/3214534.html
cocos2d-x CCScrollView和CCTableView的使用:http://www.tuicool.com/articles/fuemq2
另外.先介绍下涉及的几个经常用法。
必须实现:
|
1
2
3
4
5
6
7
8
9
10
11
|
//触摸到某个cell的事件 virtual //定制每一个cell的size virtual //定制每一个cell的内容 virtual //确定这个tableview的cell行数 virtual |
选择实现:
|
1
2
3
4
|
//设置单元格高亮的状态 virtual //设置单元格非高亮的状态 virtual |
必须实现:
|
1
2
3
|
//因为CCTableView是继承CCScrollView,所以要继承这两个方法 virtual virtual |
以下介绍实现方法。
1。使用的时候要注意要引入扩展库文件: #include "cocos-ext.h" ,而且最好要加入�: USING_NS_CC_EXT ; 这样就不用老是加前缀cocos2d::extension。
|
1
2
|
class}; |
3。实现须要的方法(上述列举的三类中, 当中两类必须实现。 另一类可选。)
简单三不,就能定制属于你自己的列表了。非常easy吧。
以下给出上述天天酷跑道具列表的实现代码。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
//// // //// ////#ifndef#define#include#include#includeUSING_NS_CC_EXT;//cocos2dx定义的宏usingclass{public: virtual static void public: //CCTableViewDelegate继承自CCScrollViewDelegate virtual virtual //点击哪个cell virtual //每一个cell的size virtual //生成cell virtual //cell的数量 virtual //按下去的时候,就是高亮显示,这里能够设置高亮状态 virtual //松开的时候,取消高亮状态 virtual void CREATE_FUNC(GameInfo);};#endif |
GameInfo.cpp
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
//// // //// ////#include#includeusingusingCCScene*{ CCScene GameInfo scene->addChild(layer); returnscene;}bool{ if( { returnfalse; } //获取屏幕大小 CCSize //设置背景 CCSprite"pic_InfoBg.png"); this->setPosition(ccp(visibSize.width/2, this->addChild(bg_); //加入�列表 CCTableViewthis, tableView->setDirection(kCCScrollViewDirectionVertical); tableView->setPosition(ccp(-525, tableView->setAnchorPoint(ccp(0, tableView->setDelegate(this); tableView->setVerticalFillOrder(kCCTableViewFillTopDown); this->addChild(tableView,1); tableView->reloadData(); returntrue;}void{ CCDirector::sharedDirector()->end();#if exit(0);#endif}//cell的数量unsigned{ return6;}//生成cellCCTableViewCell*{ CCString"cell_%d.png",idx); CCTableViewCell if(!cell) { cellnewCCTableViewCell(); cell->autorelease(); //设置当前cell图片 CCSprite iconSprite->setAnchorPoint(CCPointZero); iconSprite->setPosition(ccp(0, iconSprite->setTag(123); cell->addChild(iconSprite); } else { //创建了就不须要再又一次创建了,不然你会发现图片跟文字都不正确 CCTexture2D CCSprite pSprite->setTexture(aTexture); } returncell; }CCSize{ returnCCSizeMake(605,}void{ }void{}void{ CCBlink cell->runAction(blink_);}void{}void{} |
Cocos2d-x滚动列表具体解释(CCScrollView的使用)的更多相关文章
- 在滚动列表中实现视频的播放(ListView & RecyclerView)
英文原文:Implementing video playback in a scrolled list (ListView & RecyclerView) 本文将讲解如何在列表中实现视频播放. ...
- Android 在滚动列表中实现视频的播放(ListView & RecyclerView)
这片文章基于开源项目: VideoPlayerManager. 所有的代码和示例都在那里.本文将跳过许多东西.因此如果你要真正理解它是如何工作的,最好下载源码,并结合源代码一起阅读本文.但是即便是没有 ...
- Jquery制作--循环滚动列表
自己模仿JQ插件的写法写了一个循环滚动列表插件,支持自定义上.下.左.右四个方向,支持平滑滚动或者间断滚动两种方式,都是通过参数设置.JQ里面有些重复的地方,暂时没想到更好的方法去精简.不过效果还是可 ...
- Android 高级UI设计笔记09:Android如何实现无限滚动列表
ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验 ...
- 当滚动列表的时候,让input框失去焦点(移动端会收起键盘)
1.拓展scroll.vue事件 beforeScroll:{ type:Boolean, default:false } if(this.beforeScroll){//滚动列表的时候收起键盘(移动 ...
- Android 高级UI设计笔记09:Android实现无限滚动列表
1. 无限滚动列表应用场景: ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们 ...
- 一次react滚动列表的实践---兼容ios安卓
一.背景 近期项目改版,对原有的h5页面进行了重新设计,数据呈现变成了瀑布流.希望新版兼容ios和安卓两端的情况下,无限制的刷新加载数据.大致效果如下: 整个页面分4部分: 顶部导航 步数状态卡片 用 ...
- 【js】我们需要无限滚动列表吗?
无限滚动列表,顾名思义,是能够无限滚动的列表(愿意是指那些能够不断缓冲加载新数据的列表的).但是,我们真的需要这样一个列表吗?在PC端,浏览器的性能其实已经能够满足海量dom节点的渲染刷新(笔者经过简 ...
- WebApp 滚动列表的实现
实现效果: 实现技术:overflow,flex,element::-webkit-scrollbar 实现步骤: //html:代码<div id="slider"> ...
随机推荐
- ANDROID_MARS学习笔记_S01原始版_023_MP3PLAYER003_播放mp3
一.简介 1.在onListItemClick中实现点击条目时,跳转到PlayerActivity,mp3info通过Intent传给PlayerActivity 2.PlayerActivity通过 ...
- 163. Missing Ranges
题目: Given a sorted integer array where the range of elements are [lower, upper] inclusive, return it ...
- python描述符descriptor(二)
python内置的描述符 python有些内置的描述符对象,property.staticmethod.classmethod,python实现如下: class Property(object): ...
- 转载:CEO应向软件工程师学习的7个技能
软件工程师的哪些技能是值得CEO学习的?显然,软件工程师是逻辑的,高效的,注重细节的,有计划的,并且大多数CEO也是如此.但是,软件工程师还有一些更微妙,甚至是令人懊恼的品质,那么CEO是否可以从中学 ...
- bzoj2738
感人肺腑pascal过不去系列,跪求开O2先不说这个了,学完cdq分治之后又顺手学了一下整体二分感觉这两个东西很多相似的地方,干脆都叫cdq分治好了二分解决k小就是设当前二分的答案为m,把x<= ...
- EF多数据库预热
使用EF第一次加载程序会很慢,因为EF第一次会生成实体类和数据库的对应关系并做缓存,怎么解决这个问题呢?站在巨人的肩膀上将会省力很多,博客园的dudu已经给出了个解决方案(EF版本6.0以上) htt ...
- Mac 上Dock中添加“最近打开过的项目”(Recent Applications)
有一个特别有用的Stack,“最近打开过的项目”,建立方法如下: 1. 打开Terminal,输入以下命令 defaults write com.apple.dock persistent-other ...
- 如何判断 Android 应用的 Apk 签名是否一致?
可以比对apk签名的fingerprint. 假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做: 1. 查找apk里的rsa文件 (Windows ...
- SSL双向认证(高清版)
介绍了SSL双向认证的一些基本问题,以及使用Nginx+PHP基于它搭建https的Webservice. 之前的方式只是实现1:1的模式,昨天同事继续实现了n:1的模式,这里我再整理记录下. 由于n ...
- [Jacky] Stoe load reload 区别
load( Object options ) : Boolean 采用配置好的Reader格式去加载Record缓存,具体请求的任务由配置好的Proxy对象完成. reload( Object opt ...