2015年7月10日 UITableView 2

原创 2015年07月10日 22:13:19

UITableView


UITableViewCell  的性能优化

原来的代码   这样的话 每当视图 中出现一条table 就会重新创建一个cell  会造成资源的浪费

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//    indexPath.row     行
//    indexPath.section   组
     AutomobileGroups* a1 = self.automobileGroups[indexPath.section];
   
    UITableViewCell* cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    cell.textLabel.text =  a1.automobiles[indexPath.row];
    return cell;
    
}


优化三部曲:

1.通过一个标示去缓存池中寻找可循环的cell

2.如果缓存池找不到可循环利用的cell:创建一个新的cell,给cell贴一个标示

3.给cell设置新的数据

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString* ID = @"car";
    
    //1.寻找缓存池中 是否有cell
    UITableViewCell* cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    
    //2.如果没有的话 创建一个
    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    
    //3.重置信息
    carGroup* cg = self.groups[indexPath.section];
    car* c = cg.cars[indexPath.row];
    cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",c.icon]];
    cell.textLabel.text = [NSString stringWithFormat:@"%@",c.name];
    
    return  cell;
}

其中 static 也是很重要的优化 因为每次调用这个方法时都初始化一个id 也会消耗内存

如果有static 的话 只会在第一次 进行初始化


cell的 属性


显示 右边的索引

- (NSArray*)sectionIndexTitlesForTableView:(UITableView *)tableView{
    return [self.groups valueForKeyPath:@"title"];//kvc
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

3.3.4.5. 日期计算

MySQL提供了几个函数,可以用来计算日期,例如,计算年龄或提取日期部分。 要想确定每个宠物有多大,可以计算当前日期的年和出生日期之间的差。如果当前日期的日历年比出生日期早,则减去一年。以下查询...
  • wangpengqi
  • wangpengqi
  • 2013年10月15日 14:37
  • 515

2015年06月10日

HTTP协议介绍 HTTP协议的主要特点: a)、支持Client/Server模式; b)、简单—客户端向服务端请求服务时,只需要指定服务URL,携带相应的参数和消息体; c)、灵活—HTTP...
  • lvbaolin123
  • lvbaolin123
  • 2016年09月25日 11:37
  • 276

2015年06月10日

自定义View,实现图片的圆角以及圆形效果。效果图:第一个是原图,第二个是圆形效果,第三第四设置了不同的圆角大小。准备改变一个博客的风格,首先给大家讲一下原理,让大家明白了,然后再贴代码,不然可以直接...
  • god2030
  • god2030
  • 2016年04月13日 09:42
  • 154

2015年05月10日

  • Wmwl1345
  • Wmwl1345
  • 2016年08月04日 20:24
  • 117

2015年3月10日

概述, synchronizedlock的区别。 2,使用区别 3,lock的实现类 4,
  • letempsar
  • letempsar
  • 2015年03月21日 21:06
  • 167

2015年06月10日

1、java序列化,接触到的第一种序列化或者编解码技术就是java的默认序列化,只需要序列化的entity对象实现java.io.serializable接口,根据实际情况生成序列ID,这个类就能够通...
  • lvbaolin123
  • lvbaolin123
  • 2016年09月25日 11:37
  • 87

2015年3月10日学习心得

昨天在看Java中的面向对象与内存解析时,有稍许的不理解,故晚上回去又仔细的揣摩了一下。         就以这个方法调用为例:       public class TestMethod  { ...
  • lingdu795
  • lingdu795
  • 2015年03月10日 08:23
  • 166

2015年9月10日

2015年9月10日笔记  Axcur动态设置汇总 图标设置 ——点击图标图片向左滑动 步骤:选中该图标(命名为图标1),同时选中“鼠标单击时”,→双击用例1→设置面板状态→选中“...
  • JINQINGS
  • JINQINGS
  • 2015年09月11日 00:04
  • 189

7月10日 使用CTE MSDN

 WITH common_table_expression (Transact-SQL) SQL Server 2014 其他版本 SQL Server...
  • caiyuangba
  • caiyuangba
  • 2015年07月10日 09:08
  • 217

2015年04月10日

1、取下电池板2、用热吹风机吹屏幕(注意开的档不要过高,吹得要均匀感觉屏幕热了就行了)3、你会发现屏幕变灵敏了1、用用沾有水的纸巾覆盖着手机失灵处2、取下打火机里的静电器用其电击屏幕3、看看手机屏幕变...
  • forest_fire
  • forest_fire
  • 2016年03月21日 11:11
  • 97
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2015年7月10日 UITableView 2
举报原因:
原因补充:

(最多只允许输入30个字)