美文网首页iOS高阶UI相关
iOS页面卡顿问题的的优化

iOS页面卡顿问题的的优化

作者: 齐滇大圣 | 来源:发表于2015-12-01 20:51 被阅读1277次

1. 计算UITableViewCell高度问题####

问题一:做ios开发的都知道在不定高的table里计算UITableViewCell高度是个很蛋疼的时
解决: UITableViewCell里的元素到使用约束布局,根据约束来得到高度。就不用来自己计算高度了。

问题二:ios8跟ios7高度计算机制不同,ios7会缓存已经得到过的高度,ios8每次都会去计算一次高度。
解决:自己做一下高度的缓存咯。

问题三:在什么时候计算高度比较好呢?在滑动的时候再去计算高度,肯定也会消耗一些性能的。
解决:预缓存机制,利用RunLoop空闲时间执行预缓存任务。

这三个问题大神都解决了,原文链接

在一些不复杂的Cell可以用这种方法,可以加快开发效率,不用自己计算高度了。但是在一些复杂视图里,还是自己用frame去计算高度,并自己在后台线程里缓存比较好,因为autolayout本身比frame是更消耗资源的。


以下内容是对ibireme同学的iOS 保持界面流畅的技巧博文的学习。感谢大神的分享

2. CPU资源消耗优化####

  • 对象创建
    尽量用轻量的对象代替重量的对象,可以对性能有所优化。比如 CALayer 比 UIView 要轻量许多,那么不需要响应触摸事件的控件,用 CALayer 显示会更加合适。
  • 对象调整
    对象的调整也经常是消耗 CPU 资源的地方。当视图层次调整时,UIView、CALayer 之间会出现很多方法调用与通知,所以在优化性能时,应该尽量避免调整视图层次、添加和移除视图。
  • 对象销毁
    我之前一般都不会取销毁对象的,看来我错了,一些没用的资源还是要及时销毁的。
    如果对象可以放到后台线程去释放,那就挪到后台线程去。这里有个小 Tip:把对象捕获到 block 中,然后扔到后台队列去随便发送个消息以避免编译器警告,就可以让对象在后台线程销毁了。
    NSArray *tmp = self.array;
    self.array = nil;
    dispatch_async(queue, ^{
    [tmp class];
    });
  • 布局计算
    视图布局的计算是 App 中最为常见的消耗 CPU 资源的地方。如果能在后台线程提前计算好视图布局、并且对视图布局进行缓存(可以在model里算好宽高位置等,不要多次计算),那么这个地方基本就不会产生性能问题了。

相关文章

  • iOS的优化

    面试的时候,优化的问题,问的挺多的iOS的优化分为很多,卡顿优化,耗电优化,启动优化,网络优化等 卡顿优化 首先的...

  • iOS页面卡顿问题的的优化

    1. 计算UITableViewCell高度问题#### 问题一:做ios开发的都知道在不定高的table里计算U...

  • iOS卡顿优化

    iOS卡顿优化

  • iOS 性能优化

    iOS的性能优化主要可提现在以前的几个方面:卡顿优化、耗电优化、启动优化、安装包的瘦身。 1、卡顿优化 在了解卡顿...

  • iOS必读 - 收藏集 - 掘金

    iOS 性能优化总结 - iOS - 掘金关于iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局...

  • IOS的性能优化包括哪几点

    iOS性能优化总结 iOS性能优化总结。关于 iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局...

  • 渲染 Rendering

    在进行iOS的性能优化中,会碰到卡顿的问题,虽然iOS设备的性能越来越高,但是卡顿的问题还是有可能会出现,而离屏渲...

  • 性能、打包题目

    前端性能优化 页面DOM节点太多,会出现什么问题?如何优化? DOM太多会造成页面加载卡顿, 操作DOM节点 在外...

  • iOS性能优化-卡顿

    前言:本文旨在介绍iOS性能优化中有关页面卡顿的产生、优化以及监控。 一、屏幕的显示 图片加载到显示的过程:通常计...

  • iOS页面Push卡顿优化

    在了解这个问题之前,我们先复习一下:iOS 视图生命周期 initWithCoder:(NSCoder *)aDe...

网友评论

    本文标题:iOS页面卡顿问题的的优化

    本文链接:https://www.haomeiwen.com/subject/koijhttx.html