时间:2015-07-29 来源:

【独立开发者erCocos2d-x实战012】Cocos2dx2.2.6CCTableView和CCTableViewCell详解 【编程语言】

首先抛出一个问题:TableView一个Cell存在多个数据源(例如:Sprite),那应该如何区分点击的是哪一个精灵.

首先我创建三个自定义的类:

版权声明:本文为博主原创文章,承接网站前端未经博主允许不得转载.

同时我们让HelloWorld继承如下:

如果大家使用现有的Cocos2dx实现,html切图报价个人感觉是行不通的团队网页接活,因为Cocos2dx认为一个Cell就是一个点击,团队网页接活但是我们现在需要的是一个Cell存在多数据源,手机网页制作这样就需要我们自定义TableView和TableViewCell.

class MyCustomCell: public CCSprite { public: CREATE_FUNC(MyCustomCell); virtual bool init(); void setPicIndex(int nPicIndex); int getPicIndex(); private:    CCSprite *m_pSprite;/* 每一个Cell中的每一个数据源 */ int m_nPicIndex; }; class MyTableView: public CCTableView { public: static MyTableView * create(CCTableViewDataSource* dataSource, CCSize size, CCEvent *pEvent); CCPoint &getLastEnd(){return mLastEnd;} private: MyTableView(){} CCPoint mLastEnd; }; /////////////////////////////////////////////////////////////////////////////////////////////// class MyCustomTableViewCell : public cocos2d::extension::CCTableViewCell { public: // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone virtual bool init(); // implement the "static node()" method manually void setPic(int idx); CREATE_FUNC(MyCustomTableViewCell); MyCustomCell* getTouchCell(const CCPoint& pt); private: MyCustomCell* m_cell[PERROW_4]; };这样我们的触摸事件就可以在相应的Cell元素中的数据源中进行处理了,承接网站前端而不用根据坐标的换算和上下移动进行计算psd切图html,使得计算简单化.

由于CCTableViewDelegate和CCTableViewDataSource是抽象类,psd切图html我们继承后需要实现相关的接口:

//CCTableViewDelegate : public CCScrollViewDelegate virtual void tableCellTouched(CCTableView* table, CCTableViewCell* cell); virtual void tableCellUnhighlight(CCTableView* table, unsigned int idx); virtual unsigned int numberOfCellsInTableView(CCTableView *table); //test table view -- override end -----------------------------------------------实现如下:void HelloWorld::tableCellTouched(CCTableView* table, selectedCell->getPicIndex()); } } void HelloWorld::tableCellHighlight(CCTableView* table, CCTableViewCell* cell) { } CCSize HelloWorld::cellSizeForTable(CCTableView *table) { return CCSizeMake(40*PERROW_4, unsigned int idx) { MyCustomTableViewCell *cell = (MyCustomTableViewCell*)table->dequeueCell(); if (!cell) { cell = MyCustomTableViewCell::create(); } else { } cell->setPic(idx); return cell; } unsigned int HelloWorld::numberOfCellsInTableView(CCTableView *table) { return TOTALROWNUM;/* 返回总共几个Cell */ } 最终结果如下:我们点击哪一个图标就会输出对应的图标名数字:

由于部分实现细节涉及机密web外包,但是我不会提供源码网页切图制作, public CCTableViewDelegate, public CCTableViewDataSource

图片资源如下:请点击.

如果对上述描述还是不明白的朋友,div+css+js切图请见详细描述:请点击.

点击次数:3984
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日UIView利用hitTest添加点击事件 【编程语言】2015年01月07日在Linux环境配置功能完善的WU-FTP服务器的方法分享2014年01月29日SparkRDDAPI扩展开发(1)【编程语言】2015年04月24日winform如何实现一个窗体显示后,他的窗体处于不可编辑状态2014年12月11日Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理模式【编程语言】2015年04月03日算法导论第十九章:斐波拉契堆 【编程语言】2015年07月20日运营商网络采用SDN所面临的挑战(一) 【互联网】2014年11月18日android网址判定正则表达式修改【移动开发】2015年02月28日2、Linux操作系统之操作篇-Xmanager远程访问Linux图形化界面【移动开发】2015年05月25日形象生动的画面:移动思维和WEB思维【互联网】2015年07月03日三星Samsung4.4.2官方系统精简列表 【编程语言】2015年06月12日Codeforces327EAxisWalking状压dp(水【Web前端】2015年03月24日为ImageView设置背景图片(代码中)【编程语言】2015年08月24日Android实现在线更新的过程案例2015年03月16日一张图了解cocos2d坐标系【数据库】2015年02月16日深入XPath的详解以及Java示例代码分析2014年01月30日UML建模——使用EA工具开发时序图实践及经验 【移动开发】2015年03月20日天蓝蓝朋友社区为您提供提供100M-500M免费PHP空间服务2014年01月29日Appium中部分api的使用方法 【编程语言】2015年01月09日howtomcatworks读书笔记十一StandWrapper下 【Web前端】2014年11月20日POJ3009:Curling2.0 【数据库】2015年07月31日模仿360卫士升级(增加主界面清理进程和流量统计的功能)【移动开发】2015年01月19日snprintf函数使用2015年09月01日IOS开发之图片浏览 【编程语言】2015年08月26日BZOJ3205Apio2013机器人斯坦纳树 【编程语言】2015年01月09日2014福布斯全球最具价值品牌榜,苹果稳坐榜首【互联网】2014年11月13日简单的用java实现读写文本文件的示例2014年01月30日PHP手机归属地查询api2014年01月29日数据透视表中巧用平均值计算及时妥投率2015年06月11日erMaster插件 【综合】2015年06月02日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)