• [ios]纯代码实现UITableViewCell的自定义扩展


    (转)参考:http://blog.sina.com.cn/s/blog_65cbfb2b0101cd60.html

    第一种,

    简单的增加UITableViewCell一些小功能

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

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

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

    cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    static NSString *identifier = @"cell";

    UITableViewCell  *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    if (cell == nil) {

    cell = [[[UITableViewCell  alloc]initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:identifier] autorelease];

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

    label1.tag = 1;

    [cell.contentView addSubview:label3];

    [label3 release];

    }

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

    label1.text = @"44444";

    return cell;

    }

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

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

    在NewCell中增加两个UILabel的属性

    代码如下

    //NewCell.h

    #import

    @interface NewCell : UITableViewCell

    {

    UILabel *_label1;

    UILabel *_label2;

    }

    - (void)setLabel1Text:(NSString *)text1

      label2Text:(NSString *)text2;

    @end

    //NewCell.m

    #import "NewCell.h"

    @implementation NewCell

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

    {

        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

        if (self) {

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

    _label1.text = @"111111111";

    [self.contentView addSubview:_label1];

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

    _label2.text = @"111111111";

    [self.contentView addSubview:_label2];

        }

        return self;

    }

    - (void)setLabel1Text:(NSString *)text1

      label2Text:(NSString *)text2

    {

    _label1.text = text1;

    _label2.text = text2;

    }

    - (void)dealloc

    {

    [_label1 release];

    [_label2 release];

    [super dealloc];

    }

    @end

    //UITableViewCell的生成方法

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

    cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    static NSString *identifier = @"cell";

    NewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    if (cell == nil) {

    cell = [[[NewCell alloc]initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:identifier] autorelease];

    }

    [cell setLabel1Text:@"222222222" label2Text:@"333333333"];

    return cell;

    }

  • 相关阅读:
    Docker的load,save和import,export的区别
    LeetCode 146. LRU 缓存机制
    mongoTemplate怎么获取MongoDB自动生成的主键_id
    $ajax()或$.get()中的请求成功时运行的函数success无法执行的解决办法
    使用$.get()请求controller出现 http://localhost:8080/../[object%20Object] 错误的问题解决
    Java利用Runtime调用Python脚本
    SpringMVC返回对象类型报错HttpMessageNotWritableException: No converter found for return value of type
    「题解」洛谷 P1801 黑匣子
    「题解」洛谷 P1717 钓鱼
    「题解」洛谷 P2571 [SCOI2010]传送带
  • 原文地址:https://www.cnblogs.com/lyggqm/p/5088526.html
Copyright © 2020-2023  润新知