cocos2d-x关于CCTableView的“乱序问题”的理解
Cocos2d-x有一个不错的控件CCTableView。之前用的时候发现有cell的顺序错乱和重复出现的问题。后来仔细看了一下源码,发现是自己用法错误。但是网上有人说是一个bug,要改源码。我发现2.04以上的源码都是没问题的。
先来看看网上说的改源码是怎么样改的:
CCTableViewCell *CCTableView::dequeueCell()
{
CCTableViewCell *cell;
// ) {
if () {
cell = NULL;
} else {
);
cell->retain();
);
cell->autorelease();
}
return cell;
}
也就是说,让
 dequeueCell总是返回NULL。这样一来
CCTableViewCell* ProfileLayer::tableCellAtIndex(cocos2d::extension::CCTableView *table,unsignedint idx){
CCTableViewCell* cell = table->dequeueCell();
if (!cell) {}
return cell;
}
这个函数中每次都在执行if (!cell)语句,如果这个if语句里是创建cell的话,当你不断滑动这个view,就会不断创建,内存会越来越少,直到crash。
正确的用法是在
tableCellAtIndex(cocos2d::extension::CCTableView *table,unsigned int idx)中,每次根据idx来“刷新”cell的内容。也就是说,dequeueCell()返回的不一定是空,有可能是其它cell的内容,这个时候你可以把这个cell的内容都抹掉再重现加载cell的顺序为idx的内容。
cocos2d-x关于CCTableView的“乱序问题”的理解的更多相关文章
- 由乱序播放说开了去-数组的打乱算法Fisher–Yates Shuffle
		之前用HTML5的Audio API写了个音乐频谱效果,再之后又加了个播放列表就成了个简单的播放器,其中弄了个功能是'Shuffle'也就是一般播放器都有的列表打乱功能,或者理解为随机播放. 但我觉得 ... 
- iOS之数组的排序(升序、降序及乱序)
		#pragma mark -- 数组排序方法(升序) - (void)arraySortASC{ //数组排序 //定义一个数字数组 NSArray *array = @[@(3),@(4),@(2) ... 
- volatile关键字及编译器指令乱序总结
		本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论. 以下是我搭建的博 ... 
- Fisher-Yates 乱序算法
		这两篇博客[1][2]的模式是我心仪的一种科技博客的方式,提供源代码,显示运行图形结果,通俗地介绍理论原理. 直接把结论摘录下来吧. 随机算法如果写成如下形式 randomIndex = random ... 
- TCP协议下大数据传输IOCP乱序问题
		毕业后稀里糊涂的闭门造车了两年,自己的独立博客也写了两年,各种乱七八糟,最近准备把自己博客废了,现在来看了下这两年写的对我来说略微有点意义的文章只此一篇,转载过来以作留念. 写的很肤浅且凌乱,请见谅. ... 
- 疯狂位图之——位图生成12GB无重复随机乱序大整数集
		上一篇讲述了用位图实现无重复数据的排序,排序算法一下就写好了,想弄个大点数据测试一下,因为小数据在内存中快排已经很快. 一.生成的数据集要求 1.数据为0--2147483647(2^31-1)范围内 ... 
- clumsy 0.1 测试工具(延迟\掉包\节流\重发\乱序\篡改)
		clumsy : http://jagt.github.io/clumsy/可以模拟以下几种场景: 延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况. 掉包(Drop),随机丢 ... 
- IOS第四天(6:答题区按钮点击和乱序)
		#pragma mark - 答题区按钮点击方法 - (void)answerClick:(UIButton *)button { // 1. 如果按钮没有字,直接返回 ) return; // 2. ... 
- IOS第四天(3:数组的排序和乱序)
		数组的升序和降序 - (void)sortWith:(NSArray *)array { // 排序 array = [array sortedArrayUsingComparator:^NSComp ... 
随机推荐
- json文件问题
			在json数据没有错误 字符 的前提下 出现的问题 如果有中文 那么编码格式 必须是UTF-8格式的 
- Flask web开发  请求拦截和预处理
			我们在开发WEB应用时,往往会需要对所有的url请求进行拦截,做些预处理,比如权限处理.日志等统一处理. 本文介绍一下Flask中的处理机制.我们通过一个简单的例子来说明. 1.编写一个简单应用 ru ... 
- Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明(转)
			一. 官网说明 在DBCA 建库的时候,有提示让我们选择连接类型,这里有两种类型:专用服务器模式和共享服务器模式.默认使用专用模式.如下图: Oracle 官方文档对这两种文档的说明如下: Abou ... 
- Installation and Configuration MySQL Cluster 7.2 on CentOS 5 (include MySQL 5.5)
			Architecture Manager Node mysql-mag1 192.168.1.31 mysql-mag2 192.168.1.32 SQL Node mysql-sql1 ... 
- 【ant项目构建学习点滴】--(3)打包及运行jar文件
			<?xml version="1.0" encoding="UTF-8"?> <project default="compile&q ... 
- C--全排列的实现(递归方法)   傻子也能看懂的
			假设数组含有n个元素,则提取数组中的每一个元素做一次头元素,然后全排列除数组中除第一个元素之外的所有元素,这样就达到了对数组中所有元素进行全排列的得目的.[这句话才是重点!] 比如 1,2,3.的 ... 
- java--进步学习IO
			import java.io.*; public class Demo1 { public static void main(String []args) throws Exception{ File ... 
- mysql字符串连接,重复等字符串函数总结
			mysql concat()函数 MySQL的concat函数可以连接一个或者多个字符串,如 select concat('10'); 输出 10 select concat('11','22','3 ... 
- Demo XML 、 JSON 解析 AND 网络HTTP请求
			有道云笔记分享:http://note.youdao.com/share/?id=7950b949a5017a698a9ecc95bc250ec5&type=note 后台服务端:C#.服务器 ... 
- 基于visual Studio2013解决C语言竞赛题之1025Bessel函数
			      题目 解决代码及点评 /* 功能:25. Bessel函数Jn(X)有以下的递推关系: J[n+1](x)=(2n+1)/x*J[n](x)-J[n-1](x) 并 ... 
