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

2020-04-30  本文已影响0人  小明2021

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

方法是通过 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()
        }
    }
上一篇下一篇

猜你喜欢

热点阅读