自定义cell 3中方式

自定cell的三种方式。


(1)

uitableviewcell的子类自定义cell

1.新建一个类承自uitableviewcell。

2。初始化方法中添加自己的控件

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

{

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

    if (self)

    {

        self.menuImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 37, 100)];

        [self addSubview:_menuImageView];

        [_menuImageView release];

    }

    return self;

}

3。使用

static NSString *cellIdenifer = @"MenuTableViewCellInDentifer";

    

    LPMenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdenifer];

    

    if (!cell) 

    {

        cell = [[[LPMenuTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdenifer] autorelease];

        

    }



(2)

在tableview的代理方法中自定cell


static NSString *cellIdenifer = @"MenuTableViewCellInDentifer";

    

    LPMenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdenifer];

    

    if (!cell) 

    {

        cell = [[[LPMenuTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdenifer] autorelease];


UILabel *aaa = [[UILabel alloc] init]

[cell addsubview:aaa];

aaa.tag = 111;

        

    }


UILabel *label = [cell viewWithTag:111];




(3)


xib自定cell

1.新建一个类承自uitableviewcell。

2.新建一个空的xib.

3.在xib中拖拽一个uitableviewcell,然后置一下他的大小

4.更改才拖拽的uitableviewcell的类型 第一步中新建的类的类型。

5.置uitableviewcell的idenifier一个固定字符串,个字符串要跟tableview的数据源中定字符串吻合

static NSString *cellIdenifer = @"MenuTableViewCellInDentifer";应该跟xib中cell置的吻合)

    

    LPMenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdenifer];

6.在xib的cell中添加自定的控件

7.在自定义的cell类中声明属性,供以后使用

8.连接xib中的控件和类中的属性,关联的时候不是关联到xib的file's owner上,而是uitableviewcell本身。

9.使用 

static NSString *cellIdenifer = @"DishesTableViewCellInDentifer";应该跟xib中cell置的idenifier吻合)

    

   (自定的cell类) LPDishTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdenifer];

        

    if (!cell) 

    {

        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"LPDishTableViewCell" owner:nil options:nil];(此为刚才新建的xib的名字)

        

        for (id oneObject in nib) 

        {

            if ([oneObject isKindOfClass:[LPDishTableViewCell class]]) 

            {

                cell = (LPDishTableViewCell *)oneObject;

            }

        }

    }

你可能感兴趣的:(iOS)