关于tableView的一些优化

关于优化
除了之前用单例模式把数据放在一个类中的优化之外,今天又总结了其他几种关于tableView的一些优化
1.label等控件
当label的公共样式属性很多的时候,我们有需要建很多label的时候,我们可以创建一个categary 把公共属性部分放在方法中 把不同的属性作为参数传进去
2.cell内容显示
cell显示内容的时候,之前我们是对cell中的每个控件依次赋值,如果这个自定义cell中有几十个控件的话,我们需要写几十行代码,显然这太繁琐了
优化前:
        cell. iconImageViwe . image  = [ UIImage   imageNamed :stu. icon ];
        cell. nameLabel . text  = stu. name ;
        cell. sexLable . text  = stu. sex ;
        cell. phoneNumberLable . text  = stu. phoneNumber ;
        cell. introduceLable . text  = stu. introduce ;
 
优化后:  cell. student  = stu;
 
name、sex、phoneNumber等这些都是学生对象的属性,所以我们可以把这个学生直接传给cell,
cell拿到这个学生对象以后,再把这个学生对象的各个属性赋给自己的子控件。
cell要能直接拿到这个学生对象,就需要有一个student的属性可供外界访问和赋值。然后我们需要重写这个属性的setter方法。
-( void )setStudent:( Student  *)student
{
     if  ( _student  != student) {
        [ _student   release ];
         _student  = [student  retain ];
    }
    // 拿到这个对象以后把对象的属性赋给cell的各个子控件,那么子控件上显示相应的值
      self . iconImageViwe . image  = [ UIImage   imageNamed :student. icon ];
     self . nameLabel . text  = student. name ;
     self . phoneNumberLable . text  = student. phoneNumber ;
     self . sexLable . text  = student. sex ;
     self . introduceLable . text  = student. introduce ;
    
}
3.把自定义cell中的视图设为懒加载对象(该视图需要被使用的时候才会被创建)
该对象只有在被取值,即被调用它的getter方法时,对象才会被创建,所以其初始化是在getter方法中实现的,所以我们 需要改写每个属性的getter方法,先判断该对象是否为空,若为空,则创建。例如:
-( UILabel  *)nameLabel
{
     if  ( _nameLabel  ==  nil ) {
         _nameLabel  = [[ UILabel   alloc ]  initWithFrame : CGRectMake ( CGRectGetMaxX ( _iconImageViwe . frame ) +  kMargin ,  _iconImageViwe . frame . origin . y ,  150 ,  30 )];
         _nameLabel . backgroundColor  = [ UIColor   cyanColor ];
        [ self   addSubview : _nameLabel ];
    }
     return   _nameLabel ;
}
posted on 2014-05-28 17:59 和果子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liuyu521/p/3757620.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值