纯代码实现UITableViewCell的自定义扩展

转自:http://blog.sina.com.cn/s/blog_65cbfb2b0101cd60.html

介绍两种方法

第一种,

简单的增加UITableViewCell一些小功能

例如在cell上面添加一个UILabel。

直接在UITableViewCell的生成方法中实现,代码如下

- (UITableViewCell *)tableView:(UITableView *)tableView

cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

staticNSString *identifier =@"cell";

UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:identifier];

if(cell ==nil) {

cell = [[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identifier]autorelease];

UILabel *label1 = [[UILabelalloc]initWithFrame:CGRectMake(190,0,130, cell.frame.size.height)];

label1.tag =1;

[cell.contentViewaddSubview:label3];

[label3release];

}

UILabel *label3 = (UILabel *)[cell.contentViewviewWithTag:1];

label1.text =@"44444";

returncell;

}

第二种,较为正规的写法。

新建一个自定义的继承UITableViewCell的类如NewCell。

在NewCell中增加两个UILabel的属性

代码如下

//NewCell.h

#import

@interfaceNewCell :UITableViewCell

{

UILabel *_label1;

UILabel *_label2;

}

- (void)setLabel1Text:(NSString *)text1

label2Text:(NSString *)text2;

@end

//NewCell.m

#import"NewCell.h"

@implementationNewCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

self= [superinitWithStyle:stylereuseIdentifier:reuseIdentifier];

if(self) {

_label1= [[UILabelalloc]initWithFrame:CGRectMake(0,0,160,self.frame.size.height)];

_label1.text=@"111111111";

[self.contentViewaddSubview:_label1];

_label2= [[UILabelalloc]initWithFrame:CGRectMake(160,0,160,self.frame.size.height)];

_label2.text=@"111111111";

[self.contentViewaddSubview:_label2];

}

return self;

}

- (void)setLabel1Text:(NSString *)text1

label2Text:(NSString *)text2

{

_label1.text = text1;

_label2.text = text2;

}

- (void)dealloc

{

[_label1release];

[_label2release];

[superdealloc];

}

@end

//UITableViewCell的生成方法

- (UITableViewCell *)tableView:(UITableView *)tableView

cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

staticNSString *identifier =@"cell";

NewCell*cell = [tableViewdequeueReusableCellWithIdentifier:identifier];

if(cell ==nil) {

cell = [[[NewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identifier]autorelease];

}

[cellsetLabel1Text:@"222222222"label2Text:@"333333333"];

returncell;

}

你可能感兴趣的:(纯代码实现UITableViewCell的自定义扩展)