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. [自用]数论和组合计数类数学相关(定理&证明&板子)

    0 写在前面 本文受 NaVi_Awson 的启发,甚至一些地方直接引用,在此说明. 1 数论 1.0 gcd 1.0.0 gcd $gcd(a,b) = gcd(b,a\;mod\;b)$ 证明:设 ...

  2. 多项式的基本运算(FFT和NTT)总结

    设参与运算的多项式最高次数是n,那么多项式的加法,减法显然可以在O(n)时间内计算. 所以我们关心的是两个多项式的乘积.朴素的方法需要O(n^2)时间,并不够优秀. 考虑优化. 多项式乘积 方案一:分 ...

  3. ●BZOJ 1069 [SCOI2007]最大土地面积

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1069 题解: 计算几何,凸包,旋转卡壳 其实和这个题差不多,POJ 2079 Triangl ...

  4. 【Toll!Revisited(uva 10537)】

    题目来源:蓝皮书P331 ·这道题使得我们更加深刻的去理解Dijkstra!       在做惯了if(dis[u]+w<dis[v])的普通最短路后,这道选择路径方案不是简单的比大小的题横在了 ...

  5. Angular中 build的时候遇到的错误--There are multiple modules with names that only differ in casing

    今天早上遇到一个Angular的编译的时候的错误 具体信息: There are multiple modules with names that only differ in casing.This ...

  6. C# 导入excel报错 :不是预期外部表

    错误原因:由于Excel 97-2003的连接格式与Excel 2010 的 不同造成. 解决方案1: 很多人换了2010后,问的最多的问题之一是2003里最经典的ADO中的“provider=Mic ...

  7. 【转】Java方向如何准备技术面试答案(汇总版)

    本文转载自:“Java团长”公众号 1.面向对象和面向过程的区别 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采 ...

  8. SpringBoot中跨域问题

    项目中经常会遇到浏览器跨域的问题,解决方式在启动类中配置 @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigur ...

  9. 如何在 vmware esxi 中开放 VNC功能及端口实现远程管理 完整篇

    VMWare esxi中开放 VNC功能及端口实现远程管理 完整篇 在多个论坛上看了相关文章,总的写得不完整.现将各方资源整编写完整版.详文如下! (图片来自51CTO) 步骤1. 修改ESXi主机的 ...

  10. easyui combobox setValue数据绑不上

    var synj = "<%=arrbj[3]%>"; var xnxq = "<%=xnxq%>"; OnchangeSelect($ ...