iOS- tableview的本地性能优化

关于uitableview中常常问到的问题

Cell的重?用原理

• 还有?一个?非常重要的问题:有时候需要?自定义UITableViewCell(?用?一个?子类继 承UITableViewCell),?而且每?一?行?用的不?一定是同?一种UITableViewCell,所以?一 个UITableView可能拥有不同类型的UITableViewCell,对象池中也会有很多不同类型的 UITableViewCell,那么UITableView在重?用UITableViewCell时可能会得到错误类型的 UITableViewCell

• 解决?方案:UITableViewCell有个NSString *reuseIdentifier属性,可以在初始 化UITableViewCell的时候传?入?一个特定的字符串标识来设置reuseIdentifier(?一般 ?用UITableViewCell的类名)。当UITableView要求dataSource返回UITableViewCell时,先 通过?一个字符串标识到对象池中查找对应类型的UITableViewCell对象,如果有,就重 ?用,如果没有,就传?入这个字符串标识来初始化?一个UITableViewCell对象

所以解决代码为:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

// 1.定义?一个cell的标识

static NSString *ID = @"mjcell";

// 2.从缓存池中取出cell

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

// 3.如果缓存池中没有cell
if (cell == nil) {

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle

reuseIdentifier:ID];

}

// 4.设置cell的属性... return cell;

时间: 2024-10-16 22:40:43

iOS- tableview的本地性能优化的相关文章

tableView循环利用性能优化

tableView性能优化 - cell的循环利用方式1 /** * 什么时候调用:每当有一个cell进入视野范围内就会调用 */ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // 0.重用标识 // 被static修饰的局部变量:只会初始化一次,在整个程序运行过程中,只有一份内存 static NSString *ID = @"c

iOS的一些常用性能优化,和内存优化的方法

也是借鉴别人的,感兴趣的可以仔细看看哈 1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为你管理retain和release的 过程,所以你就不必去手动干预了.忘掉代码段结尾的release简直像记得吃饭一样简单.而ARC会自动在底层为你做这些工作.除了帮你避免内存泄 露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存. 2. 在正确的

iOS 中18个性能优化/内存优化常用方法(很常用)

1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数),它避免了最常见的由于我们忘记释放内存所造成的内存泄露.它自动为你管理retain和release的过程,所以你就不必去手动管理了.编写代码的时候很容易忘掉结尾的release.而ARC会自动在底层为你做这些工作.除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存. 2. 在正确的地方使用 reuseIdentifier 一个开发中常见的错误就是没有给UITab

iOS图片设置圆角性能优化

问题 圆角虽好,但如果使用不当,它就是你的帧数杀手,特别当它出现在滚动列表的时候.下面来看圆角如何毁掉你的流畅度的. 实测 layer.cornerRadius 我创建了一个简单地UITableView视图,为每个cell添加了2个UIImageView实例,且为UIImageView实例进行如下设置 aImageView.layer.cornerRadius = aImageView.frame.size.width/2.0; aImageView.layer.masksToBounds = 

IOS经常使用的性能优化策略

1.用ARC管理内存 2.对于UITableView使用重用机制 3.UIView及其子类设置opaque=true 4.主进程是用来绘制UI的,所以不要堵塞 5.慎用XIB,由于XIB创建UIViewController时.会将xib上的全部内容导入到内存 6.选择正确集合 Arrays:有序的值的列表.用index高速查找,通过值查找慢,insert/delete操作慢. Dictionaries:存储键/值对.用index高速查找. Sets: 无序的值列表. 通过值高速查找,insert

复杂TableView在iOS上的性能优化

声明:本文翻译自<iOS performance optimization>,原文作者 Khang Vo.翻译本文纯属为了技术交流的目的,并不具有任何的商业性质,也不得利用本文内容进行商业盈利.欢迎转载,但是希望转载的时候加上出处连接,谢谢.译者联系方式 [email protected],如果有 iOS 开发之类的问题,欢迎?一起讨论,谢谢.另,由于本人翻译经验不多,如果翻译不妥或者理解不到位的地方,希望各位朋友海涵,可以发信到上述邮箱,我会及时地根据大家的反馈,对翻译稿做及时地修改,谢谢!

iOS之tableView性能优化/tableView滑动卡顿?

本文围绕以下几点展开tableView性能优化的论述? 1.UITableViewCell重用机制? 2.tableView滑动为什么会卡顿? 3.优化方法? 4.总结 1.UITableViewCell重用机制? UITableView只会创建一屏幕(或者一屏幕多一点)的cell,其他都是取出来重用的.每当cell滑出屏幕的时候,就会放到一个集合中,当要显示某一位置的cell时,会先去集合中取,有的话,就直接拿出来显示,没有在创建. 2.tableView滑动为什么会卡顿? cell赋值内容时

iOS App 性能优化总结

今天简单总结一些clientapp 优化的方案和方向. 我相信开发一个app大部分团队都能够完毕,可是性能久不一样啦,和我们都写一个冒泡算法一样,我相信每一个人写的冒泡算法都不一样,这些区别就带来了性能的区别. 所以一个好的app 不止看设计.和创意 ,还要看性能. 以下我就简单说几点性能优化点: 一.首页启动速度 启动过程中做的事情越少越好(尽可能将多个接口合并) 不在UI线程上作耗时的操作(数据的处理在子线程进行,处理完通知主线程刷新节目) 在合适的时机開始后台任务(比如在用户指引节目就能够

IOS 性能优化的建议和技巧

IOS 性能优化的建议和技巧 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_. 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易