1        CCTableView的使用

T26TableView.h

#ifndef
__T26TableView_H__

#define
__T26TableView_H__

#include
"cocos2d.h"

#include
"cocos-ext.h"

#include
"TBack.h"

USING_NS_CC;

USING_NS_CC_EXT;

class
T26TableView :public
TBack, public
CCTableViewDataSource

{

public:

CREATE_FUNC(T26TableView);

bool
init();

static
CCScene * scene();

CCArray*
_cells;

//获取指定的CCTableViewCell

virtual
CCTableViewCell* tableCellAtIndex(CCTableView *table,unsigned
int idx)

{

return (CCTableViewCell*)_cells->objectAtIndex(idx);

}

//获取CCTableViewCell的个数

virtual
unsigned int
numberOfCellsInTableView(CCTableView *table)

{

return
_cells->count();

}

//获得Cell的大小

virtual
CCSize tableCellSizeForIndex(CCTableView *table,unsigned
int idx) {

return
cellSizeForTable(table);

}

virtual
CCSize cellSizeForTable(CCTableView *table) {

return
CCDirector::sharedDirector()->getWinSize();

}

};

#endif

T26TableView.cpp

#include
"T26TableView.h"

CCScene *T26TableView::scene()

{

CCScene *
scene = CCScene::create();

T26TableView *
layer = T26TableView::create();

scene->addChild(layer);

return
scene;

}

bool
T26TableView::init()

{

TBack::init();

CCSize
winSize = CCDirector::sharedDirector()->getWinSize();

_cells =
CCArray::create();

_cells->retain();

for (inti = 0;
i < 5; ++i)

{

//创举CCTableViewCell

CCTableViewCell*cell =
new CCTableViewCell;

//放入存储CCTableViewCell的CCArray中去

_cells->addObject(cell);

cell->release();

//每个格子中添加精灵

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

cell->addChild(sprite);

sprite->setPosition(ccp(winSize.width / 2,winSize.height
/ 2));

}

//使用了回调

CCTableView*
view = CCTableView::create(this,winSize);

addChild(view);

//设置滚动的方向

view->setDirection(kCCScrollViewDirectionHorizontal);

//从数据源重新加载,视图将会被刷新

view->reloadData();

return
true;

}

运行结果:

2 TableView响应和小格子tableView实现

T26TableView.h

#ifndef
__T26TableView_H__

#define
__T26TableView_H__

#include
"cocos2d.h"

#include
"cocos-ext.h"

#include
"TBack.h"

USING_NS_CC;

USING_NS_CC_EXT;

class
T26TableView :public
TBack, public
CCTableViewDataSource, public
CCTableViewDelegate

{

public:

CREATE_FUNC(T26TableView);

bool
init();

static
CCScene * scene();

//数据源支持的虚函数

CCArray*
_cells;

//获取指定的CCTableViewCell

virtual
CCTableViewCell* tableCellAtIndex(CCTableView *table,unsigned
int idx)

{

return (CCTableViewCell*)_cells->objectAtIndex(idx);

}

//获取CCTableViewCell的个数

virtual
unsigned int
numberOfCellsInTableView(CCTableView *table)

{

return
_cells->count();

}

//获得Cell的大小,cctableView的某个格子的大小可以不一样

virtual
CCSize tableCellSizeForIndex(CCTableView *table,unsigned
int idx) {

CCLog("顺序是:idx = %d",idx);

//当时第3个格子的时候相对其它的格子的空间大一下

if (idx == 2)

{

return
CCSize(80, 57);

}

return
cellSizeForTable(table);

}

virtual
CCSize cellSizeForTable(CCTableView *table) {

return
CCSize(57, 57);

}

//点击代理函数

virtual
void tableCellTouched(CCTableView*table,
CCTableViewCell*cell)

{

CCLog("idx=%d",cell->getIdx());

}

virtual
void scrollViewDidScroll(CCScrollView*view){}

virtual
void scrollViewDidZoom(CCScrollView*view){}

};

#endif

T26TableView.cpp

#include
"T26TableView.h"

CCScene *T26TableView::scene()

{

CCScene *
scene = CCScene::create();

T26TableView *
layer = T26TableView::create();

scene->addChild(layer);

return
scene;

}

bool
T26TableView::init()

{

TBack::init();

CCSize
winSize = CCDirector::sharedDirector()->getWinSize();

CCSize
cellSize = CCSize(57, 57);

_cells =
CCArray::create();

_cells->retain();

for (inti = 0;
i < 5; ++i)

{

//创举CCTableViewCell

CCTableViewCell*cell =
new CCTableViewCell;

//放入存储CCTableViewCell的CCArray中去

_cells->addObject(cell);

cell->release();

//每个格子中添加精灵

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

cell->addChild(sprite);

sprite->setPosition(ccp(cellSize.width / 2,cellSize.height
/ 2));

}

//使用了回调

CCTableView*
view = CCTableView::create(this,CCSize(cellSize.width
* 3,cellSize.height));

addChild(view);

//设置滚动的方向

view->setDirection(kCCScrollViewDirectionHorizontal);

//从数据源重新加载,视图将会被刷新

view->reloadData();

view->setPosition(ccp(200, 200));

// 点击处理

view->setDelegate(this);

return
true;

}

运行结果:

1CCTableView的使用,TableView响应和小格子tableView实现的更多相关文章

  1. ios 两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动

    两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动 这是一个创建于 359 天前的主题,其中的信息可能已经有所发展或是发生改变. [联动] :两个 ...

  2. iOS开发小技巧--TableView Group样式中控制每个section之间的距离

    一.TableView的Group样式中,默认的每个section都有sectionHeader和sectionFooter,只要调整这两个的大小就可以实现section之前的间距扩大或缩小 二.项目 ...

  3. iOS开发小技巧--TableView中headerView的循环利用,以及自定义的headerView

    一.首先要搞清楚,tableView中有两种headerView,一个是tableHeaderView,另一个是headerView.前者就一个;后者根据session决定个数 headerView的 ...

  4. iOS开发小技巧--tableView中实现无数据无分割线,有数据才有分割线

    通过通讯录练习GET的技能

  5. tableview: 实现tableview 的 section header 跟随tableview滑动

    方法一:(只有一个headerView)一段 如果你的tableview恰好只有一个headerView,实现这种效果就好办了.把要设置的headerView设置成tableView的header而不 ...

  6. 小程序框架之视图层 View~事件系统~WXS响应事件

    WXS响应事件 基础库 2.4.4 开始支持,低版本需做兼容处理. 背景 有频繁用户交互的效果在小程序上表现是比较卡顿的,例如页面有 2 个元素 A 和 B,用户在 A 上做 touchmove 手势 ...

  7. ios 关于tableview小技巧

    第一个:cell中的分割线不顶头 首先在viewDidLoad方法加入以下代码: if ([self.tableView respondsToSelector:@selector(setSeparat ...

  8. tableView

    Table View简单描述: 在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View ...

  9. iOS 知识-常用小技巧大杂烩

    原文链接:http://www.jianshu.com/p/7c3ee5e67d03. 自己看的. 1,打印View所有子视图 po [[self view]recursiveDescription] ...

随机推荐

  1. hdu 5475(线段树)

    题意: 两个操作:① 当为1时 ,乘上后面的数 ② 当为2时,除以第x次乘的数 还说了2操作后面的n不会重复(就这明显看出线段树- -,然而并没有看出来,还是靠的队友) 1则对每个节点赋值,2则将相应 ...

  2. hdu5651 xiaoxin juju needs help(逆元)

    xiaoxin juju needs help  Accepts: 150  Submissions: 966  Time Limit: 2000/1000 MS (Java/Others)  Mem ...

  3. hihocoder #1142 : 三分·三分求极值

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的 ...

  4. js 当前时间刷新

    <p>每隔1秒钟,打印当前时间</p> <div id="time"></div> <script> function ...

  5. SQL使用总结-like,MAX,MIN

    1. 时间索引不容许使用like 对时间索引适应like,会时间索引变成字符串操作,成为遍历动作,失去索引价值. 错误写法: EXPLAIN  SELECT AVG(data_value) AS av ...

  6. ionic笔记

    ionic教程网站:http://www.ionic.wang/ 1.ui-router路由简介 https://blog.csdn.net/mcpang/article/details/551015 ...

  7. logback学习二

    转载:https://www.cnblogs.com/DeepLearing/p/5663178.html 属性 : debug : 默认为false ,设置为true时,将打印出logback内部日 ...

  8. 函数的属性和方法之call、apply 及bind

    一.前言 ECMAScript中的函数是对象,因此函数也有属性和方法.每个函数都包含两个属性:length和prototype.每个函数也包含两个非继承来的方法:apply()和call(),还有一些 ...

  9. rw 模板设置

    在编译的时候只有写出rw之后使用alt+/就可以将模板代码全部展现出来. rw读写模板代码: InputStream in = null; OutputStream out = null; try { ...

  10. Lintcode391 Number of Airplanes in the Sky solution 题解

    [题目描述] Given an interval list which are flying and landing time of the flight. How many airplanes ar ...