CCTableView的使用和注意事项
#include "cocos-ext.h"
using namespace cocos2d::extension; class TableViewTestLayer: public CCTableViewDataSource, public CCTableViewDelegate
{
public:
///////////////////////////////////////////////////////////////////////////////////////////
// CCScrollViewDelegate
virtual void scrollViewDidScroll(CCScrollView* view){}
virtual void scrollViewDidZoom(CCScrollView* view){}
// CCTableViewDelegate
//点击响应
virtual void tableCellTouched(CCTableView* table, CCTableViewCell* cell){}
//设置按下时高亮
virtual void tableCellHighlight(CCTableView* table, CCTableViewCell* cell){}
//设置松开是取消高亮
virtual void tableCellUnhighlight(CCTableView* table, CCTableViewCell* cell){}
//循环使用某个单元格
virtual void tableCellWillRecycle(CCTableView* table, CCTableViewCell* cell){}
// CCTableViewDataSource
//每一项的大小
virtual CCSize tableCellSizeForIndex(CCTableView *table, unsigned int idx);
//每一项的内容
virtual CCTableViewCell* tableCellAtIndex(CCTableView *table, unsigned int idx);
//一共多少项
virtual unsigned int numberOfCellsInTableView(CCTableView *table);
/////////////////////////////////////////////////////////////////////////////////////////// protected:
CCTableView *mTableView;
};
//
mTableView = CCTableView::create(this, CCSizeMake(616, 551));
//设置左右滑动 或上下
mTableView->setDirection(kCCScrollViewDirectionVertical);
//
mTableView->setPosition(ccp(12, 851-770));
mTableView->setDelegate(this);
//index0123...由上到下放置
mTableView->setVerticalFillOrder(kCCTableViewFillTopDown);
mBg->addChild(mTableView); //
CCTableViewCell* TableViewTestLayer::tableCellAtIndex(CCTableView *table, unsigned int idx)
{
CCTableViewCell *pCell = table->dequeueCell();
if (! pCell )
{
pCell = new CCTableViewCell();
pCell ->autorelease(); //添加该项内容、、、、
}
else
{
//该项已有内容,服用之前滑出可视区域的tablecell,要么全部移除重新添加,要么自己更新、、、、
}
}
值得注意的是:
1. tableView在setVerticalFillOrder时会reloadData;
void CCTableView::setVerticalFillOrder(CCTableViewVerticalFillOrder fillOrder)
{
if (m_eVordering != fillOrder) {
m_eVordering = fillOrder;
if (m_pCellsUsed->count() > 0) {
this->reloadData();
}
}
}
所以--->要是在tableCellAtIndex中使用tableView的parent,记得先parent->addchild(tableveiw);再setVerticalFillOrder
2.tableView在create的时候,就会预加载一下tableCell,调用updateCellAtIndex,下面是调用CCTableView::create的调用堆栈

所以--->要是在updateCellAtIndex中涉及到tableView的parent调用,程序就会蹦掉、
所以最好将create出来的tableView保存为成员变量,然后在updateCellAtIndex中判断一下
CCTableViewCell *cell = table->dequeueCell(); if (cell == NULL)
{
cell = new CCTableViewCell();
cell->autorelease();
}
else
{
cell->removeAllChildren();
} //如果不是create保存的成员变量(即此时调用的updateCellAtIndex是在create是预加载调用的),则不要涉及到parent的操作。
if (table != mTableView) return cell;
CCTableView的使用和注意事项的更多相关文章
- jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- TODO:Golang指针使用注意事项
TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变:例子2是使用指针传递,会改变地址,从而改变地址. ...
- app开发外包注意事项,2017最新资讯
我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许 ...
- favicon.ioc使用以及注意事项
1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没 ...
- ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 【原】Masonry+UIScrollView的使用注意事项
[原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...
- 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
随机推荐
- web服务器分析与设计(五)--一些总结
随着年龄与经验的增加,对于软件方面的分析与设计也会有一些新的认识.下面做个近期的总结: 1,关于到底用不用作设计的问题: 在最近两个公司,原有人马是不会作设计(我自己的感觉),也察觉不到作设计的任何冲 ...
- Some_problem_with_octopress
今天我总算是使用上了高大上的octopress了,不容易啊,现在我把之前的博客全部搬到了octopress上了,在github上办博客让我不用再担心流量和广告了!---爽啊 我使用octopress时 ...
- 【Hadoop学习】HDFS 短路本地读
Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146296.html 背景 ...
- openstack deug
今天想debug一下nova-compute进程, 用devstack迅速安装之后, kill掉nova-compute进程,然后修改nova/cmd/__init__.py文件的 “eventlet ...
- HTTP返回码总结 (zz)
Http返回码是服务器给爬虫的信息,需要有效的利用. HTTP协议状态码表示的意思主要分为五类 ,大体是 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1×× 保留 2×× ...
- 您需要来自administrators的权限才能对此文件进行更改
今天我重装了系统,以前D盘里的一个文件夹想删除,可以一直没法删除,原先它提示"您需要来自 S-1-5-21-602162358-1284227242-682003330-500 的权限才能对 ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/M Description 相信大家都听说一个"百岛湖&q ...
- JavaIO(04)字符流--Writer and Reader
字符流: 常识:在java中一个字符等于两个字节: 操作字符流的两个类:Writer,Reader API文档介绍(Writer): public abstract class Write ...
- Linux下常用的shell命令记录
硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 ...
- Rop 文件上传解决思路
由于服务请求报文是一个文本,无法直接传送二进制的文件内容,因此必须采用某种转换机制将二进制的文件内容转换为字符串.Rop 采用如下的方式对上传文件进行编码:<fileType>@<B ...