提高UITableView滚动流畅性的一些技巧

UITableView是一个在开发过程中经常需要使用到的类,所以提高它在滚动时候的性能是一件比较重要的事情。如果它滚动的效率不高,则会产生一些不好的用户体验。除了在数据源的拉取以及减小图片尺寸之外,还有一些方法可以让你的UITableView滚动的更加流畅。

1.缓存所有cell的高度;

2.缓存所有tableView最近经常使用的image;

3.尽量在UITableViewCell的drawRect:方法中进行界面的绘制;

4.尽量使所有的子view包括contentView都是不透明的;

5.像是文档推荐的那样使用重用符;

6.尽量不要在cell内部对image做出什么复杂或者特殊的处理;

7.如果使用nib构造cell界面的话,则在右侧的reuseIdentifier中和cellForRowAtIndexPath方法中使用相同的重用符;

在开发中尽量遵守以上的规则,则可以让UITableView尽量地提高滚动速率。

时间: 2024-10-10 11:52:18

提高UITableView滚动流畅性的一些技巧的相关文章

UITableVIew 滚动流畅性优化

影响UITableViewUITableView滚动的流畅性原因: 1. 在代理方法中做了过多的计算占用了 UI 线程的时间 2.同上 3.Cell 中 view 的组织复杂,比如使用layer并不会有太大影响,但是如果layer使用了透明,或者圆角.变形等效果,就会影响到绘制速度. 关于第一点,首先要明白 tableview 的代理(这里指 datasource 和 delegate 的那套方法,下同)方法的调用顺序,和时机.对于一般的应用会有如下顺序: 1.向代理要 number Of Ro

UITableView 滚动流程性优化

影响 UITableView 滚动的流畅性的原因 1. 在代理方法中做了过多的计算占用了 UI 线程的时间 2.同上 3.Cell 中 view 的组织复杂 关于第一点,首先要明白 tableview 的代理(这里指 datasource 和 delegate 的那套方法,下同)方法的调用顺序,和时机.对于一般的应用会有如下顺序: 1.向代理要 number Of Rows. 2.对于每行向代理要 height For Row At Index Path. 3.向代理要 当前屏幕可见的 cell

优化UITableView滚动的流畅性

影响UITableViewUITableView滚动的流畅性原因: 1. 在代理方法中做了过多的计算占用了 UI 线程的时间 2.同上 3.Cell 中 view 的组织复杂,比如使用layer并不会有太大影响,但是如果layer使用了透明,或者圆角.变形等效果,就会影响到绘制速度. 关于第一点,首先要明白 tableview 的代理(这里指 datasource 和 delegate 的那套方法,下同)方法的调用顺序,和时机.对于一般的应用会有如下顺序: 1.向代理要 number Of Ro

提高iOS App性能的建议和技巧

当我们开发iOS应用时,好的性能对我们的App来说是很重要的.你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢就会让你得到不好的评论. 然而,由于IOS设备的限制有时很难工作得很正确.我们开发时有很多需要我们记住这些容易忘记的决定对性能的影响. 这是为什么我写这篇文章的原因.这篇文章用备忘录的形式集合了25个技巧和诀窍可以用来提高你的app性能.所以耐心的阅读来给你未来的App一个很不错的提高. Note:在优化代码之前,必须保证有个需要解决的问题!不要陷入"pre-optimizi

UITableView滚动性能优化

影响 UITableView 滚动的流畅性的原因 1.在代理方法中做了过多的计算占用了 UI 线程的时间 2.Cell里的图片吃GPU(在tableView:cellForRowAtIndexPath:中) 3.Cell 中 view 的组织复杂 关于第一点,首先要明白 tableview 的代理(这里指 datasource 和 delegate 的那套方法,下同)方法的调用顺序,和时机.对于一般的应用会有如下顺序: 1.向代理要 number Of Rows. 2.对于每行向代理要 heig

优化UITableView滚动性能

自定义的cell如下: 第一个:Instruments测试,iphone4 38fps-45fps,iphone3G 25fps // table with normal XIB based cells - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"CustomC

隐藏UITableView的滚动条以及修改滚动条的颜色,UITableView 滚动到指定行 section

    //隐藏 self.tableView.showsVerticalScrollIndicator = NO; //修改颜色 self.tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite; UITableView 滚动到指定行 section NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:2]; CGRect frame = [tablevie

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 the

IOS学习之UITableView滚动到指定位置

IOS学习之UITableView滚动到指定位置 方法很简单: - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 有些需要注意的地方: 如果在reloadData后需要立即获取tableview的cell.高度,或者需要滚动tableview,那么,直接在reloadDa