gpt4 book ai didi

iOS 7 应用程序因内存压力而终止

转载 作者:行者123 更新时间:2023-12-01 18:16:35 24 4
gpt4 key购买 nike

我有两个使用大型 UIScrollowView 的 ipad 应用程序 View ,这似乎会导致内存问题。当内存达到大约 250MB 时,我收到了第一个内存警告。使用 Apple Instruments 时,这里是 All Heap 中最大的:

虚拟机:ImageIO_JPEG_Data,大小 32.13MB
虚拟机:CoreAnimation,大小 32.13MB
虚拟机:ImageIO_JPEG_Data,大小 26.64MB
...

我在 ScrollView 中有许多图像-它们都加载到 Storyboard 中,我想知道是否减小图像的大小或分辨率可以解决问题?

最佳答案

您可以设置一个系统来删除/加载 ScrollView 中某些点的某些图像,因此应用程序仅在用户即将看到它们时才将它们保存在内存中。

因为你说它比较大,所以在scrollview的scroll方法中,设置变量来知道scrollview在什么位置(例如:一半向下,10%滚动等)。如果用户坐在 ScrollView 的末尾(即:无法再向下滚动(100%)),那么他们并没有完全看到 View 顶部的图像。然后,您可以将这些图像归零,以便应用程序可以重用该内存。当用户滚动并且 ScrollView 接近某个百分比时,您可以加载用户即将看到的那些图像并将用户远离的图像归零(这可能会导致几秒钟的“空白”用户正在疯狂地滚动浏览您的应用程序,但这没关系,因为图像全部加载不会超过几秒钟)。

因为这些图像已加载到 Storyboard 中,所以我假设您是通过 UIImageView 加载它们的。只需给每个人一个导出(按住 control + 单击并将其拖动到您类(class)的 .h 文件并创建一个 IBOutlet),然后当您获得用户在 ScrollView 下方的百分比时,您就可以知道“好吧,用户是50%,这样我就可以摆脱 ScrollView 0-20% 和 80-100% 的图像',
你这样做:

//^Get scrollview scrolled percentage
//^find out where the user is, get a list of UIImageViews that are not visible on the screen
_yourUIImageView.image = nil //get rid of the image, clear memory up
//then when you need to add it again, assign an image to the UIImageview

希望我有所帮助。

关于iOS 7 应用程序因内存压力而终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21470771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com