iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 什么是可接受的FPS滚动,什么是提高性能的提示?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在许多WWDC视频中看到,您希望尽可能地达到60.0 FPS,以获得更好的平滑滚动体验。我有一个UIScrolLView加载图像和一些表视图一次。目前我正在获得30 FPS。这是推荐的FPS的一半。只是想知道你们通常会得到什么FPS的加载图像和其他重的东西/渲染的表视图/滚动视图。

任何其他提示,以优化FPS?我花一个星期,直到现在,使用时间分析器,分配和核心动画工具来发射仪器,尽可能优化。

只是为了澄清一下我有什么。我在iPad上有一个砖石/瀑布/ pinterest风格的布局。所以它不只是一个常规的UITableView。这是一个UIScrollView,它填满了整个屏幕,并填满了几个UIView。每个这个视图都有一个150×150的UIImageView和一个UITableView,它还有一些归因的标签使用COre Text绘制。所以一瞥当你看到屏幕,你可以一次看到5-8表视图,每个单元格还有一个UIImageView,然后每个单元格呈现使用核心文本绘制的归因标签

@R_262_10229@以直观地描述这是多么的复杂。这不仅仅是一个UIImageView的常规表格视图。我知道如何在具有UIImage的iPhone中使用一个UITableView获得60 FPS。这个概念是异步加载图像,而不是尽可能地阻止主线程。

编辑:

看来这里的问题是我看到的UITableView ..当我从UIView中删除它,我真的很顺利滚动..

上传一个比较简单的示例项目,但它清楚地显示了问题。的链接here

解决方法

许多事情影响渲染性能,这里有一些项目可以检查:

简介 – 你说你已经这样做了,太好了!不幸的是,分析过程往往被忽视,尽管它可以揭示意想不到的问题。在一个应用程序中,我正在使用不同的表示日期的单元格的日历。首先在细胞之间滚动缓慢,这是意想不到的。我以为也许是画几个细胞太多了。在剖析之后,我发现[NSCalender currentCalender]正在使用我的cpu间的85%!固定之后,所有的东西滚动很棒!
>图像 – 大图像在CoreGraphics中投入了大量的负载。滚动特别需要大量绘图操作来移动它们。一个提示是尽可能少地在设备上缩放图像,这使得CoreGraphics的工作更容易。如果图像是显示它的视图的两倍,请在显示视图之前调整UIImage的大小。 iOS设备最好处理PNG。它们在编译时被工具(pngcrush)压缩,并且iOS具有用于呈现它们的特殊硬件。
>自定义绘图 – 如果可能,削减您自定义CGContext绘图的数量。许多自定义绘图对动画速度有负面影响。如果可能,我会虑在复杂的自定义绘图上使用图像。
Cull – 只画你需要的东西。 UITableView会自动卸载并加载单元格,因为这是为您完成的,但任何自定义CGContext图形只能在该部件可见时进行。也可以自动查看阴影在我的经验很慢。
>重用 – 在UITableView上使用重用标识符,这将允许UITableView重用单元对象,而不是在滚动时重新分配 – 查看此question的答案。还可以重复使用UIImages而不是为同一个文件分配多个。 imagenamed自动缓存图像,但imageFromContents的文件不会。>创建自己的 – 您可以创建自己的网格视图类,剔除屏幕上隐藏的子视图视图,并滚动懒惰内容加载。通过编写自定义解决方案,您可以完全控制流程并创建针对使用环境进行优化的设计。对于大多数用例,您将很难建立比Apple标准更好的东西,但是我在具体情况下已经看到它。>最后的手段 – 减少违规视图的大小(提高滤液),将内容分解成多页,缩小图像尺寸,切出不起作用的旧设备。在牺牲大部分的东西之前,我会定下30 FPS。设备将继续变得更快,旧设备将被淘汰,您的应用程序将逐渐变得更快。

大佬总结

以上是大佬教程为你收集整理的iphone – 什么是可接受的FPS滚动,什么是提高性能的提示?全部内容,希望文章能够帮你解决iphone – 什么是可接受的FPS滚动,什么是提高性能的提示?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。