iOS 11和iOS 12的掉帧导致界面卡住


浏览:937 次

你在网上搜索了很长时间了,没有遇到过有这样问题的开发者吗?我只在网上找到了iOS用户,他们说在玩游戏时,iOS11和iOS12会掉帧。我只能说你很幸运。Bug永远无法被发现和解决。然而,所有看到这个问题的学生应该都遇到过掉帧的问题。

错误发现的背景。

错误原因:因为我们公司是一家平台型公司,很明显,我们的商城模块应该与市场上大多数商城app的开发需求兼容,但它必须是一个app,必须是一组代码。有些学生可能会说,商场里只有那么多东西,没有什么兼容的。仔细听我说。我们的商城主页最多可以支持13个部分,每个部分都不同。我们将根据配置绘制不同的界面来加载不同的单元,这可能是不可信的。目前,我们在商城首页使用31个单元格,因为我们需要根据配置显示各种相应的单元格。当然,节的最大数量是13,因此可能是8节、10节等,因此我们受到heightForRowAtIndexPath方法的影响。该方法中编写了近300行代码,然后还有一些节没有被提取和加载。其中一个部分被添加到商店,并且没有上限。客户增加了100多家商店,这导致客户在滑动时感觉特别卡顿。一定是一张卡片

Bug解决方案:我想一直调用heightForRowAtIndexPath,然后有各种方法来计算行高度,所以我想缓存高度,缓存高度,然后再次查看。没有我想象的那么好。这仍然是一张牌,一个真正的洞。这是为什么?顺便说一句,互联网上最常见的解决方案是将估计行高设置为0,但……没错。我不需要说那么多,但我明白一切。这是无用的。即使它很有用,但在如此复杂的业务场景中也肯定不会很好地工作。但在那个简单的商业场景中,我感觉不到这张牌。至少在其他简单的业务场景中,我没有客户对这张卡的反馈。

Bug重新探索:我找到一位苹果用户,他说iOS11和iOS12在玩游戏时会掉帧。作为一名开发者,我不相信苹果会带着如此严重的bug退出系统?他们在检测到之前释放了它吗?然后我很快尝试了其他低版本系统,iOS8和iOS10。在相同的业务场景中,没有卡。好的,好的,但这只是视觉上的。我仍然使用代码来证明高版本系统确实存在这个问题,所以我编写了另一个类来测试帧速率。具体代码如下:

将此标签添加到此页面以进行幻灯片测试。好的,在iOS 10及以下版本上,基本上没有帧速下降,并且稳定在60。但是,在更高版本的系统上,很明显,帧速下降到8FPS和超过10FPS,而且很奇怪,没有卡。所以,没有办法解决它?最后,我的解决方案是两个。添加到每个部分的条目数量有限制。参赛作品很少,所以视觉效果不会太大。在热门推荐列表的底部,您可以在没有太多请求的情况下拉起来加载一次。然后您可以向上拉以加载,并缓存行高度。最后,你可以解决这个问题。更重要的是,Xib和Storyboard使用过多,这也会消耗性能,但有什么办法吗?需求紧张,任务繁重,纯代码肯定会更好。毕业前两年,我写了纯代码,但现在我已经写了两年xib了。我没办法。对于商城app,如果我逐行编写UI。。。

最后有两点:1.我希望一些学生能提出更好的建议,让我们一起讨论。2.如果你有时间,试着用纯代码写。在项目中使用大量的nib文件将真正提高性能。

相关资讯:
农产品电子商务向企业个人农产品电子贸易方向发展的效益

农产品电子商务向企业个人农产品电子贸易方向发展的效益

查看
Web 3.0技术的基本方向

Web 3.0技术的基本方向

查看
认知

认知

查看
面向对象的

面向对象的

查看
2018-12-25

2018-12-25

查看