如何自定义cell

     一个普通的系统cell,是有一张图片,两个lable,一个小图标,但我们看见比如饿了吗的cell就有更多信息,当现有cell不能满足我们需求时,我们就可以自己写一个cell,往上面添加控件,这就是自定义cell. 

 和我们自己定义view很像,步骤为:

1.在.h文件中定义我们需要的属性(控件),例如我们要制作这样的cell:一张图片,三个lable。@property来实现,这个在我的上一个博客有写它的详细解释。

2.在,m文件中重写初始化方法,用instancetype,还要完成控件的初始化,并添加到我们的cell上,例如:self.movieIcon=[[UIImageview alloc]init];    [self.contentView addSubview:self.movieIcon];(这里和自定义view有区别)

3.设置控件样式,lable大小,颜色等,例如:self.imageView.frame=CGRectMake(10,10,50,50)。定义imageView大小,位置。

                                                                           self.movieIcon.frame=CGRectMake(70,40,260,20)。定义movieIcon大小,位置。

                                                                          前两个数字是坐标,后两个是长宽,注意(0,0,x,y)是在屏幕左上角。

                                                                           再比如换颜色:self.movieIcon.backgroundColor=[UIColor redColor];

4.在UItableViewcell就可以替换为我们现在的MyVIewcell了,MyViewcell*cell。

5.对cell进行赋值(一般规范放在一个类里面),这时就要调用我们自己写的控件了cell.movieIcon,image=[UIImage imageNamed:@"1"];图片加入。 cell.movieName.text=@"2"字符录入。

/////当然除了代码,还可以通过xib来创建自定义的cell,跟纯代码很类似,但我感觉xib更简单,是这样的,继承于uitableViewcell,创建的时候记着勾选上使用xib这一项,然后就是在xib中拉几个我们需要的控件,然后对其进行约束,
在创建cell的时候我们需要做:1.设置cell控件的Identfier

2.绑定Cell类并且将控件的输出口关联到TableViewCell.h文件中。

第一步就是设置好我们可能会用到的重用标识符,一般来说都是需要复用的(也有例外,这个自己把握),然后第二部就是设置好我们在用的时候能够确保我们可以找到这个cell,好了,我们在用的时候看下边的controller中的cellForRow 方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//    static NSString *cellId = @"identifier";
//    CustomCell *cell;
//    cell = [tableView dequeueReusableCellWithIdentifier:cellId];
//    if (!cell) {
//        cell = [[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
//    }
//    cell.label.text = @"wofr";
//    cell.textField.placeholder= @"*******";
//    return cell;
    static NSString *cellId = @"tablCell";
    TableCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
    if (!cell) {
        cell = [[[NSBundle mainBundle]loadNibNamed:@"TableCell" owner:self options:nil]firstObject];
    }
    cell.textField.placeholder = @"UUUUUUUU";
    cell.label.text = @"w4et4g";
    return cell;
}

记着上边static NSString 定义的那个变量就是我们会用的复用标识符,必须和在XIB中设置的是一样的,这样才可以达到复用的效果,后边的NSBundle mainBundle 中的那个nibname肯定是这个自定义cell的名字,XIB也已经和这个类关联起来了,然后就可以操作了,OK! 完成。。。

                       

猜你喜欢

转载自blog.csdn.net/miaoleigemi/article/details/81156795