使用重用机制创建cell的两种方法

一.UICollectionView使用的cell重用机制

1.首先服从<UICollectionViewDataSource>协议,如果自定义cell,导入自定义cell类的头文件

2.定义全局变量重用标识符

static
NSString *cellIdentifier =
@“重用”;

3.注册cell(collection,为UICollectionView对象)

[collection registerClass:[UICollectionCell
class]
forCellWithReuseIdentifier:cellIdentifier];

[collection release];

4.创建cell

- (UICollectionViewCell *)collectionView:(UICollectionView
*)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

//使用自定义cell,用自定义cell类将UICollectionCell替换即可

UICollectionCell *cell = [collectionView
dequeueReusableCellWithReuseIdentifier:cellIdentifier
forIndexPath:indexPath];

return cell;

}

二.UITableView使用的cell重用机制

1.首先服从<UITableViewDataSource>协议,如果自定义cell,导入自定义cell类的头文件

2.创建cell

- (UITableViewCell *)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

(1).创建重用标识符

static
NSString *identifier =
@"重用”;

(2).根据重用标识符从队列中取出可重用的cell

//使用自定义cell,用自定义cell类将UICollectionCell替换即可

UITableViewCell*cell =[tableView
dequeueReusableCellWithIdentifier:identifier];

(3).判断是否成功取到可重用的cell,如果没有创建一个cell

if (!cell) {

cell = [[[UITableViewCell alloc]

initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:identifier]  
autorelease];

}

return cell;

}

时间: 2024-11-03 21:52:16

使用重用机制创建cell的两种方法的相关文章

xib创建cell的两种方法

方法一:第一步:[self.collectionView registerNib:[UINib nibWithNibName:@"QGLShareBtnCell" bundle:nil] forCellWithReuseIdentifier:@"QGLShareBtnCell”];第二步:QGLShareBtnCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QGLShareB

Javascript使用function创建类的两种方法

1.使用function类 //myFunction.js var CMyFunc=function() { //类的公共方法,供外部调用 this.Func1=function() { var i=0; return i; } this.Func2=function() { _privateFunc(); } //类中的私有方法,供公共方法调用 function _privateFunc() { return 0; ] } CMyFunc myFunc=new CMyFunc(); 使用:其它

(转)java创建线程的两种方法比较

Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法:  ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法. 为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢? 在Java中,类仅支持单继承

Java 创建线程的两种方法

Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法: ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法. 为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢? 在Java中,类仅支持单继承,

创建二叉树的两种方法以及三种遍历方法

二叉树的两种创建方法和三种遍历方法 这里的两种创建方法,一种值得是 数据结构上面的创建方法: 方法一 代码如下: 二叉树的结构定义如下: typedef struct BinaryTreeNode{ char value; struct BinaryTreeNode *left; struct BinaryTreeNode *right; }; - c语言版 void CreateBinaryTree(BinaryTreeNode **T) { char data; scanf("%d"

Webkit里创建Event的两种方法

转载请注明:http://blog.csdn.net/lichwei1983 第一种方法: 直接修改WebCore的Window, HTML中关于Event名称,监听器. 1 修改HTMLAttributeName.in,增加event name: onirkeyevent: 2 修改DOMWindow.idl,增加事件监听器:attribute EventListener onirkeypress; 3 修改Domcument.idl,增加事件监听器 attribute [DontEnum]

AO创建IFeature的两种方法

原文地址:http://www.cnblogs.com/MyLucifer/archive/2010/12/01/1893212.html 在ArcGIS Resouce Center中,ESRI介绍了两种创建Feature的方法(可以在本地的Geodatabase和sde的featureclass) 第一种是IFeatureClass.CreateFeature,在这种方法最后需要加上IFeature.Store去提交创建的要素,本人认为这种方法相比下面一种方法更好些,因为Store的方法能够

Java创建线程的两种方法

大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 创建线程的最简单的方法就是创建一个实现Runnable 接口的类.Runnable抽象了一个执行代码单元.你可以通过实现Runnable接口的方法创建每一个对象的线程.为实现Runnable 接口,一个类仅需实现一个run()的简单方法,该方法声明如下:    public void run( )

创建线程的两种方法

第一种:继承Thread类 子类覆写父类的run方法,将线程代码写在run()中. 建立子类对象,些时线程也被创建了. 通过start方法启动线程. 第二种:实现Runnable接口 子类覆盖接口的run方法,将线程代码写在run()中. 通过Thread类创建线程,并将实现Runnable接口的子类对象作为参数传递给Thread类的构造函数. Thread对象调用start方法启动线程. 两者的比较: 继承Thread类,相对简单,但因为单继承的局限性,同份资源不共享,而不建议使用:而实现Ru