iOS代码引起的发烫发热问题

前几天用户反映,观看视频,手机发烫严重,后来各种查原因,最后把视频框架更换了,发现还是发烫,这才意识到并不是看视频引起的。
果然进入到某一个页面引起的。下面是查找方案,分享给大家:

方法是通过 comment + i 调出: Instrument --- Time Profiler 找到可疑的代码。通常占用资源为:90%以上的代码是很可疑的。

通常工具并不能定位到具体的代码位置,需要根据经验和工具的提示,找出具体的页面和代码位置.

下面是最终出问题的代码:

发烫的原因是:  UIView的循环动画必须在当前页面才行,否则发烫的严重。定时器目前看来还行没这个发烫的问题。
    /// 云的动画
    func cloudAnimationAction() {
// 必须判断是在当前页面,否则就发烫,特别是多个页面都有类似的动画。
        if !(ToolOC.getCurrentVC()?.isKind(of: JieListVC.self) ?? false) {
            return // 没这个判断的话,进入其他页面也会执行下面的动画,就会发烫。
        }
        var longTime: TimeInterval = 30.0
        if self.smallCloudImgV.left != kScreenWidth_XMS/2.0 {
            self.smallCloudImgV.frame = CGRect.init(x: kScreenWidth_XMS, y: kNavigationbarHeight_XMS, width: 62, height: 24)
        } else {
            longTime = 18.0
        }
        // 小的慢
        UIView.animate(withDuration: longTime, delay: 0, options: UIView.AnimationOptions.curveEaseIn, animations: {
            self.smallCloudImgV.frame = CGRect.init(x: -62, y: kNavigationbarHeight_XMS, width: 62, height: 24)
            
        }) { (finish) in
            self.cloudAnimationAction()
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容