IOS中如何提高UITableView的性能?

最近看了一篇关于如何提高UITableView性能的文章,英文原版的地址:https://medium.com/ios-os-x-development/perfect-smooth-scrolling-in-uitableviews-fd609d5275a5#.jet1gcbax,看完之后将重要的内容总结如下:

1,对于:

tableView:cellForRowAtIndexPath:

Don’t perform data binding at this point, because there’s no cell on screen yet. For this you can use tableView:willDisplayCell:forRowAtIndexPath:method which can be implemented in the delegate of UITableView. The method called exactly before showing cell in UITableView’s bounds

不要在这个方法里面给cell赋值,因为这个时候Cell还没有出现。对此,你可以在tableView:willDisplayCell:forRowAtIndexPath:中进行,这同样是UITableView的一个代理方法,这个方法在Cell即将在UITableView的范围中显示的时候调用。

2. 在返回Cell的高度时候

I recommend not using even complex math calculations on your way to define further height of a cell, only addition, subtraction, multiplication and division (if possible).

在决定即将显示的Cell的高度的时候,建议不要使用复杂的计算,如果可能的话仅用加减乘除;

3.用AutoLayout自动适配Cell的高度怎样?

如果子视图少的话是可以的,如果子视图多的话,使用AutoLayout,性能也会减少很多的:And more subviews you have, less quickly AutoLayout works.

4. Perform code optimizations to achieve balance of loading CPU & GPU. You should clearly know which part of rendering must be done by GPU, and which one?—?by CPU for keeping balance.

将代码最优化,以达到CPU和GPU使用的平衡,你应该提前知道哪里一定要使用GPU进行渲染,哪里使用CPU来保持二者的平衡;

5. We can perform rendering at CPU by using CoreGraphics operations in drawRect: method of UIView by this way:

我们可以选择CoreGraphics利用CPU在drawRect方法中,进行渲染,实例代码如下所示

时间: 2024-10-12 04:18:48

IOS中如何提高UITableView的性能?的相关文章

UIRefreshControl --- IOS中用于刷新UITableView等的控件

IOS开发中, 经常需要添加UITableView的下拉刷新功能, 使用UIRefreshControl就可以非常方便得实现. UIRefreshControl 下边是UIRefreshControl的头文件. import Foundation import UIKit // // UIRefreshControl.h // UIKit // // Copyright 2012-2014 Apple Inc. All rights reserved. // @availability(iOS,

ios中 UINavgation 的 UITableView刷新内容

popViewControllerAnimated后,进入的viewcontroller不能即时刷新. 这时它不执行viewDidLoad,但执行viewWillAppear:(BOOL),所以只要把刷新逻辑写到viewWillAppear:(BOOL)里就OK了. 但要注意当有刷新label这样的view里,它的backgroundColor最好不要是clearColor,否则label上的字会出现重影. 刷新: UITableView 数据: self.usertable.reloadDat

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

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

架构设计:系统间通信(23)——提高ActiveMQ工作性能(中)

(接上文<架构设计:系统间通信(22)--提高ActiveMQ工作性能(上)>) 6.ActiveMQ处理规则和优化 在ActiveMQ单个服务节点的优化中,除了对ActiveMQ单个服务节点的网络IO模型进行优化外,生产者发送消息的策略和消费者处理消息的策略也关乎整个消息队列系统是否能够高效工作.请看下图所示的消息生产者和消息消费者的简要工作原理图: Producer既是消息生产者,作为一个发送消息的客户端它既可以使用同步消息发送模式,也可以使用异步的消息发送模式.另外,消息生产者在Acti

iOS中表格(UITableView)嵌套表格的简单实现

iOS中表格(UITableView)嵌套表格的简单实现 首先说一下思路:我们在一个控制器里面定义2个tableview,一个作为被嵌套的rootTable,一个作为嵌套的表格tableView1,那我们要实现UITableViewDelegate,UITableViewDataSource,的代理的时候,该怎么区分呢?其实很简单,有两种方法,一个是给定义的2个tableview设置tag值,另一个是直接写出来tableView == rootTable时实现他得代理,否则就实现tableVie

在程序开发中怎样写SQL语句可以提高数据库的性能

以下内容是公司dba总结. 1. 首先要搞明白什么叫执行计划?   执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个10万条记录的表中查1条记录,那查询优化器会选择"索引查找"方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用"全表扫描"方式. 可见,执行计划并不是固定的,它是"个性化的".产生一个正确的"执行计划

iOS 中UITableView的深理解

例如下图:首先分析一下需求:1.根据模型的不同状态显示不同高度的cell,和cell的UI界面. 2.点击cell的取消按钮时,对应的cell首先要把取消按钮隐藏掉,然后改变cell的高度. 根据需求先解决第一个需求,需要两步 当模型数据的属性的status [email protected]"2",不显示取消按钮:status = @"1",显示取消按钮. 1.需要注意的是cell的重用在这里面互有一些影响,所以在自定义cell的模型的setter方法中, 在ce

【IOS开发】UITableView的性能优化

一..重用cell 在数据源方法中,在可见的页面重复绘制 OC方法中 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; SWIFT方法 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITabl

iOS: 在UIViewController 中添加Static UITableView

如果你直接在 UIViewController 中加入一个 UITableView 并将其 Content 属性设置为 Static Cells,此时 Xcode 会报错: Static table views are only valid when embedded in UITableViewController instances. 意思是说,如果 UITableView 不是在 UITableViewController 而是在 UIViewController 中的时候,是不允许将 U