美文网首页
纯代码实现UITableViewCell的自定义扩展

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

作者: 刘大卓 | 来源:发表于2017-05-19 17:34 被阅读0次

    转自: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的自定义扩展

          本文链接:https://www.haomeiwen.com/subject/qsnyxxtx.html