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
}


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

相关文章推荐

Flex 布局教程:语法篇 作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + po

Flex 布局教程:语法篇 作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 ...

2017年7月10日听课笔记Java应用软件开发

一. Application:存活时间最长,可以多用户共享,在服务器端 Session:每一个浏览器对应服务器只有一个session,比如当我们在学校官网,通过教务系统进行成绩的查...

20130710,微软7月10日发布7个安全补丁

大家好,我们是微软大中华区安全支持团队。微软于北京时间7月10日清晨发布7个安全补丁,其中6个为最高级别严重等级,1个为重要等级,共修复Microsoft Windows、Internet Explo...

7月10日 使用CTE MSDN

 WITH common_table_expression (Transact-SQL) SQL Server 2014 其他版本 SQL Server...

扑克排序,按花色、值排序(2015年9月10日)

按花色和牌大小排序,红桃>方块>黑桃>梅花。 大概思路:新建Card对象,属性有 private int id; //花色,1234对应红方黑梅 private int values; //数字...

2015年7月1日 课设日志

2015年7月1日 软件1404 赵毅 课设日志 昨天晚上都说好了,今天,不多说废话。现在直接开始,演出计划界面层 void Schedule_UI_ListAll(void) {       ...

2015年7月11日-FW

昨天发现了FW的视频课,苦于想做网站然而不会设计,这个是初步设计基础的,适合程序媛去学。 仿制新浪以前的标志 效果如图,字体应该不太对,主要学习里面的作图方法。 第一步:用文本先...

2015年7月工作经验总结

1.Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initF...

自学笔记-C语言复习2015年7月6日

十八、字符数组 1、位于双引号中的字符序列 ,内存中以\0结束,多出一个字节; 2、C语言中没有字符串变量,用字符数组来存放字符串; 3、字符数组:char 数组名[常量表达式1][长量表达式2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2015年7月10日 UITableView 2
举报原因:
原因补充:

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