展会信息港展会大全

【Cocos2d-X】TableView的使用,cocos2d-xtableview
来源:互联网   发布日期:2015-09-28 11:24:59   浏览:2787次  

导读: 【Cocos2d-X】TableView的使用,cocos2d-xtableview 在Cocos2d-x使用TableView的过程如下: 首先用一个类继承CCTableV...

【Cocos2d-X】TableView的使用,cocos2d-xtableview

在Cocos2d-x使用TableView的过程如下:

首先用一个类继承CCTableViewDelegate(代理)和CCTableViewDataSource(数据源);

然后实现里面的有关tableView操作和内容的四个抽象方法;

最后就可以在场景类中通过CCTableView来使用这个类,CCTableView会分别设置代理对象和数据源对象

示例:

TableView.h

#ifndef _TABELVIEW_H_

#define _TABLEVIEW_H_

#include "cocos2d.h"

#include "cocos-ext.h"

using namespace cocos2d;

class TableView : public cocos2d::extension::CCTableViewDelegate,

public cocos2d::extension::CCTableViewDataSource{

public:

//================

//需实现的方法

//================

//处理触摸事件

virtual void tableCellTouched(cocos2d::extension::CCTableView* table,

cocos2d::extension::CCTableViewCell* cell);

//每一项的宽度和高度

virtual cocos2d::CCSize cellSizeForTable(cocos2d::extension::CCTableView *table);

//生成列表每一项的内容

unsigned int idx);

//一共多少项

virtual unsigned int numberOfCellsInTableView(cocos2d::extension::CCTableView *table);

//================

//可忽略的方法

//================

//继承自scrollView所需要的方法,可以空函数体忽略

virtual void scrollViewDidScroll(cocos2d::extension::CCScrollView* view){}

virtual void scrollViewDidZoom(cocos2d::extension::CCScrollView* view){}

};

#endif

TableView.cpp

#include "TableView.h"

//每个单元格选项的大小

CCSize TableView::cellSizeForTable(extension::CCTableView *table){

return CCSizeMake(480, 320);

}

//单个选项的显示

extension::CCTableViewCell* TableView::tableCellAtIndex(extension::CCTableView *table, unsigned int idx){

extension::CCTableViewCell *cell = table->dequeueCell();

if (!cell) {

// the sprite

cell = new extension::CCTableViewCell();

cell->autorelease();

CCSprite *sprite = CCSprite::create("HelloWorld.png");

sprite->setAnchorPoint(ccp(0, 0));

sprite->setPosition(ccp(0, 30));

cell->addChild(sprite);

}

return cell;

}

//选项个数

unsigned int TableView::numberOfCellsInTableView(extension::CCTableView *table){

return 5;

}

//点击单元格选项的响应事件

void TableView::tableCellTouched(extension::CCTableView* table, extension::CCTableViewCell* cell){

char s[20];

sprintf(s, "the cell is %d", cell->getIdx());

CCMessageBox(s, "对话框");

}

在HelloWorld::init方法里的使用TableView的部分代码:

//创建一个自己的TableView

TableView* tv = new TableView();

//此处的tv绑定的是数据源

cocos2d::extension::CCTableView *tableView =

cocos2d::extension::CCTableView::create(tv, CCSizeMake(480, 320));

//横向排列

tableView->setDirection(cocos2d::extension::kCCScrollViewDirectionHorizontal);

//放在屏幕中央

tableView->setPosition(ccp(visibleSize.width / 2 - 240, visibleSize.height / 2 - 160));

//此处的tv是代理

tableView->setDelegate(tv);

tableView->setVerticalFillOrder(cocos2d::extension::kCCTableViewFillTopDown);

this->addChild(tableView);

tableView->reloadData();

效果图:

点击某一图片后:

http://www.bkjia.com/Androidjc/992140.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/992140.htmlTechArticle【Cocos2d-X】TableView的使用,cocos2d-xtableview 在Cocos2d-x使用TableView的过程如下: 首先用一个类继承CCTableViewDelegate(代理)和CCTableViewDataSource(...

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港