IOS 自定义Cell的3种方式

1.自定义的Cell(纯代码方式定义,后期做项目用的较多)

解决方案:1.将原有创建出来的ViewController删掉:

2.创建一个TableViewController继承UITableViewController:将面板中的View删掉,换成TableViewController ,将图形的Class关联到TableViewController

 注意identifier的地方应该与你一会要自定义的Cell标记的名字一致;

3.因为是自己用代码创建的Cell ,所以面板中的View中的Cell要进行删除,否则系统会报错:说面板中的Cell没有方法: 因为没有删除,没代码,没实现!

4.因为是自定义的Cell 所以需要创建一个类 名称随意:继承的是UiTableViewCell ,因为是自定义的,所以在TableViewController 类中的代码也需要

修改,改成下列代码  

5.因为现在是纯代码写的,所以应该把forIndexPath去掉,改成手动写,和以前创建UitableView一样  就是if(!cell)

MyCell *cell =[tableView dequeueReusableCellWithIdentifier:@"Cell"];

    

    if (!cell) {

        cell = [[MyCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"Cell"];

    }

    

    cell.myLabel.text = [NSStringstringWithFormat:@"%d",indexPath.row];

 

6.现在的创建的Cell类虽然被 uitableviewcontroller继承,但是Cell类中没有写任何代码:所以想要做样式需要修改Cell中的代码(在初始化方法里)

2:用代码和xib结合的方式自定义控件:

解决方案:在上个纯代码实现的基础上:添加一个空的XIB文件, 命名需要和你要继承的类名一致,方便区分。

1.与第一种方式不同的是 因为是结合的方式,所以初始化自己写的方法就不行了  需要bunble

MyCell *cell =[tableView dequeueReusableCellWithIdentifier:@"Cell"];

    

    if (!cell) {

        cell = [[[NSBundlemainBundle]loadNibNamed:@"MyCell"owner:selfoptions:nil]lastObject];

    }

    

    cell.myLabel.text = [NSStringstringWithFormat:@"%d",indexPath.row];  //myCell.xibview需要和重用标识进行关联。

3.使用storyboard方式进行定义控件的方法实现:

解决方案:1.其他方式也一样 只需要将面板中的tableviewcontroller中拖Cell还有Label然后进行class关联,并且label需要在类中进行声明

2.给面板中的Cell添加标识,  还有Cell类型与定义的类进行关联

第三种只需要这么写就行,就是自定义的过程,然后删了一些代码、  可以与上图的代码比较:第七行:重新加入了indexpath  没有了IF(!CELL)判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值