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. 运维技巧-Nginx日志格式

    1.说一说 当你安装完nginx,输出的格式是比较乱的,这样我们就需要自己去定义一下,自己看着舒服的格式. 2.Nginx日志字段 $remote_addr 记录客户端IP,但她的值不是客户端提供的, ...

  2. JS点击按钮打开新的独立页面

    工作中遇到需要点击按钮弹出一个独立的页面,并显示指定内容的问题,查了一些资料后,得到以下方法: window.open('locationPage.html', '_blank', 'height=1 ...

  3. CentOS6.9安装

    我安装在VM的虚拟机中.具体安装方式网上很多,由于本机只能安装32位的linux系统,所以悬在了Centsos6.9版本.点此下载. 其中有一种是叫做LIVEDVD的版本,这种的值虚拟机中配置后,打开 ...

  4. [LOJ 6248]「CodePlus 2017 11 月赛」晨跑

    Description “无体育,不清华”.“每天锻炼一小时,健康工作五十年,幸福生活一辈子” 在清华,体育运动绝对是同学们生活中不可或缺的一部分.为了响应学校的号召,模范好学生王队长决定坚持晨跑.不 ...

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

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

  6. java9学习之模块化

    截止到目前JDK的版本已经更新到10了,虽然java9的生命周期才半年,但是我认为这个版本带来的变革是不可磨灭的,它是第一次深层次的针对架构以及依赖上的革新.下面我们就来学习一下. 一.模块化项目构建 ...

  7. jvm(一):总体概述

    我们首先来了解一下jdk,jre,jvm的之间的关系 jvm用于运行字节码,如果我们仅仅用于运行java程序,仅部署jre即可,如果我们需要进行java开发则需要jdk环境 java结构内容: jav ...

  8. CSS :focus 选择器

    :focus 选择器用于选取获得焦点的元素. <!DOCTYPE html> <html> <head> <style> input:focus { b ...

  9. vue+cordova 构建hybrid app

    配了一个 vue + cordova + ionicCli 的 项目 支持 ionic 的脚手架命令 支持 cordova 的 插件 安装使用 支持 webpack 的自动构建 vue 安装了 vue ...

  10. Centos Git1.7.1升级到Git2.2.1

    安装需求: ># yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc ># ...