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. [HNOI 2009]有趣的数列

    Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...

  2. 计蒜客NOIP模拟赛(3)D2T1 小区划分

    一条街道的两侧各连续坐落着 N 座单元楼.现在要为这些单元楼划分居民校区. 规则如下: 每个小区只能由同一侧连续的若干座单元楼组成.且两侧都恰有 K 个小区(每个小区至少有一栋楼). 两侧的小区划分规 ...

  3. ●SPOJ 8222 NSUBSTR–Substrings

    题链: http://www.spoj.com/problems/NSUBSTR/题解: 后缀自动机. 不难发现,对于自动机里面的一个状态s, 如果其允许的最大长度为maxs[s],其right集合的 ...

  4. 51 nod 1406 与查询

    1406 与查询 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   有n个整数.输出他之中和x相与之后结果为x的有多少个.x从0 ...

  5. 【集训第三天·疯狂训练】哦,顺带学习了manacher

    虽然说是疯狂训练吧,但是也没写多少题,就把伸展树的操作熟悉了一下,ac了5个题目. 一整天没啥可吐槽的,除了昨天在机房打游戏的某位朋友翻车后和教练谈了谈心2333 说题吧.. 1.BZOJ1208 H ...

  6. TOJ 数据结构实验--静态顺序栈

    描述 创建一个顺序栈(静态),栈大小为5.能够完成栈的初始化.入栈.出栈.获取栈顶元素.销毁栈等操作. 顺序栈类型定义如下: typedef struct {  int data[Max];    i ...

  7. centos7安装nginx必要环境

    安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行 , 在安装nginx前还要安装以下的环境包 一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc ...

  8. 从零开始搭建口袋妖怪管理系统(2)-借助ngRoute实现详情页面跳转

    一.目标 上一次我们用Angular1.x完成了简单的口袋妖怪展示列表页面,现在我们想要了解口袋妖怪更多的信息,但是发现原有单行表格可能容纳不下口袋妖怪的所有信息,所以现在我们需要一个口袋妖怪详情界面 ...

  9. (概念)多个CPU和多核CPU以及超线程(Hyper-Threading)

    引言 在这篇文章中我会主要介绍CPU相关的一些重要概念和技术.如果你想更好地了解操作系统,那就从本文开始吧. 中央处理器(Central processing unit) 在我们了解其它概念之前,我们 ...

  10. 一个成功的 Git 分支模型(适用于商业应用开发)

    在这篇文章中,我将推广一下大约一年前我介绍过的一些项目(公私皆有)中使用的开发模型,它们的结果都非常成功.有段时间我非常想写出来分享一下,但是我至今才抽出时间来.我不会言及任何项目细节,仅讨论分支策略 ...