UIImageView动画消耗内存太多

2023-12-12

我的记忆和动画图像有问题。首先,我正在使用 ARC。在我的初始屏幕上,我有大约 60 个要制作动画的图像。我正在使用此代码进行动画:

NSMutableArray *images = [[NSMutableArray alloc] init];
int animationImageCount = 61;
for (int i = 1; i < animationImageCount; i++) {
    [images addObject:[UIImage imageNamed:[NSString stringWithFormat:@"s-%d", i]]];
}
self.fullAnimatedImage = [UIImage imageNamed:[NSString stringWithFormat:@"s-%d", animationImageCount - 1]];

self.animatedImageView.image = self.fullAnimatedImage;
self.animatedImageView.animationImages = [NSArray arrayWithArray:images];
self.animatedImageView.animationDuration = images.count/30;
self.animatedImageView.animationRepeatCount = 1;
[self.animatedImageView startAnimating];

// since there is no official callback method when UIImageView animation completes,
// we can just call a method after animation time has passed
[self performSelector:@selector(animationFinished) withObject:nil
           afterDelay:self.animatedImageView.animationDuration];

问题是内存消耗约为300 MB,当然在iPhone 4上会崩溃。当我注释掉那部分代码时,内存消耗约为40 MB,没关系。我尝试将图像属性设置为 nil,但什么也没有。我试过把它放进去@autoreleasepool {}但它不会发布其内容。您知道如何优化这个吗?


你应该尝试更换[UIImage imageNamed:] with [UIImage imageWithContentsOfFile:].

来自文档:

如果您有一个仅显示一次的图像文件,并且希望确保它不会添加到系统缓存中,那么您应该使用 imageWithContentsOfFile: 创建图像。这将使您的一次性图像远离系统图像缓存,从而有可能改善应用程序的内存使用特性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIImageView动画消耗内存太多 的相关文章

  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • Xcode MyProjectName-Bridging-Header.h 不存在

    我想开始在我的 Objective C 项目中使用 Swift 所以我添加了一个快速类 import Foundation objc class System NSObject objc func printSome println Pri
  • 具有非零“内容”的 QTMovieLayer 的 iOS 替代品?

    背景 QTKit QuickTime Kit 是一个来自 10 3 天的 Mac 框架 在 10 5 中添加了一些层 例如QTMovieLayer QTMovieLayer 的好处之一是您可以使用常规访问电影内容content图层上的属性并
  • 获取 Cocoa 中文件的类型

    我成功找到了指定文件的扩展文件类型 JPEG 图像 TIFF 图像等 但我正在寻找更通用的东西 可以对 大类别 中的文件进行分类 如图像 moovies 文本文件等 有没有办法在可可 或 Objective C 中实现这一点 感谢您的帮助
  • 我无法捕获 WKWebView 的屏幕截图

    我正在尝试捕获 WKWebView 的屏幕截图 但我的方法无法正常工作 它返回纯色 就好像图层树为空一样 而它似乎适用于其他视图 UIImage screenshot UIImage screenshot UIGraphicsBeginIm
  • 错误 ITMS-9000 iTunes Connect

    我正在尝试上传一个phonegap build iOS应用程序到应用程序商店 我不断收到此错误 ERROR ITMS 9000 Missing Code Signing Entitlements No entitlements found
  • UIViewController 作为单例

    我在标签栏应用程序中有一个 UIViewController 我已经从 MainWindow nib 文件添加了控制器 即不是以编程方式 我的问题是如何使我的视图控制器成为单例 解决 Facebook 委托问题 您可能想让您的 Facebo
  • UIWebView 未正确加载 JavaScript - 嵌入式 Facebook 帖子

    Facebook 有一项新功能 允许用户将公共帖子嵌入网页中 我想尝试在 UIWebView 内的 iPhone 应用程序中使用它 转义必要的代码非常简单 但即使我手动转义代码 Web 视图也不会正确加载帖子 JavaScript 根本不起
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • 使用原始类型+大小写参数的 Swift Enum 的解决方法?

    我想创建 SKSpriteNodesWallType 请参阅下面的代码 并且仅当WallType is Corner通过它Side其方向的价值 枚举具有原始值 因为我需要将它们作为数字从 plist 加载 并能够随机创建它们 enum Si
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • Xcode UI 测试 - 通过 id 在 Webview 中查找元素

    我们的应用程序是混合的 包含 webview 我正在尝试使用 Xcode UI 测试自动化我们的应用程序 我能够使用以下方法找到网络按钮 let app XCUIApplication app launch let button app s
  • ios - 使用 SIGPIPE 和 SIG_IGN 的信号函数

    我加入了一个旧项目 我发现了这条线 BOOL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOptions si
  • 我正在寻找 GCDAsyncUdpSocket 上的一些示例,但发现没有一个有效

    接收数据从未被调用过 我编写了这个由我的主线调用的 swift 类UI视图控制器向接收消息的服务器发送消息 但当服务器发回响应时 客户端永远不会收到它 因为 didReceiveData 从未被触发 我一直在谷歌上搜索并查看文档 它说客户端
  • 如何确定 UINavigationController 中工具栏的高度?

    我有一个带有由 UINavigationController 呈现的工具栏的视图 当我处理 UIKeyboardWillShowNotification 时 我将整个屏幕向上滚动键盘的高度 问题是当显示键盘时 底部工具栏不显示 所以我只需将
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 如何在 iOS 5 中使用 Embed Segue?

    iOS 6 引入了 Embed Segue 允许在 Storyboard 中使用自定义容器控制器 有没有办法在 iOS 5 上复制这个 这里的挑战是子视图控制器的视图通常要添加为父视图控制器的某些容器视图的子视图 因为你不能随机进行序列UI
  • UITableViewController 无法识别的选择器发送到实例

    当我传递一个整数时 我有一个 tableviewcontroller 和一个detailtableviewcontroller UITableViewController setSurveyNumber 无法识别的选择器发送到实例 Biza
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • NSUserDefaults、Settings.bundle 和应用程序组

    我有一个有 2 个目标的应用程序 主应用程序和 Today 扩展 为了在这些目标之间共享设置 我打开了应用程序组功能 添加了一个组group myApp com然后使用NSUserDefaults在主应用程序和今日扩展中都是如此 var d

随机推荐

  • 如何按日期查询Datetime对象?

    我想根据特定日期查询表 但问题是该字段的数据类型是日期时间 select from Supplier where modified Date 2011 05 07 12 52 16 830 该查询正在返回结果 but select from
  • RemoteActorRefProvider 类未找到

    我正在努力尝试在 Scala 中设置远程 Actor 我正在运行 Scala 2 10 2 和 Akka 2 2 1 我使用 为了清楚起见 我缩短了类路径参数上的路径 进行编译 scalac classpath akka 2 2 1 lib
  • 在 OS X 中使用 Swift 显示所有可用的 WIFI 连接

    我正在尝试显示所有可用的 WIFI 连接 这不起作用 这是我的代码 import Foundation import CoreWLAN var cwInterface CWInterface do let routers try cwInt
  • 相互依赖的类声明

    我试图弄清楚这个编译错误意味着什么 我希望我能很好地解释这一点 In file included from sys charon cpp 4 0 接下来 我将转到上面的 文件 并用黄色下划线表示 include headers charon
  • 如何获取可变字符串列表?

    我有下面的代码 List
  • 计算后续位置之间的欧几里德距离

    我有由 X 和 Y 坐标对组成的大型数据框 并希望计算连续坐标之间的欧几里德距离 最小大小约为 2000 对坐标 因此 我想计算第 1 行到第 2 行 第 2 行到第 3 行 第 3 行到第 4 行等的距离 这个问题很好地展示了如何计算轨迹
  • Javascript:提取字符串中以特定字符开头的单词

    我有这个字符串 Hey I love apple and orange and also banana 我想提取以 开头的每个单词 symbol 目前我正在用这段代码实现它 var last 0 var n 0 var str Hey I
  • 无效的元素状态:元素必须是用户可编辑的才能清除尝试使用 Selenium 在下拉切换上单击并插入日期时出现的错误

    我试图单击此日历并使用 selenium 自动插入日期 但出现以下错误 无效的元素状态 元素必须是用户可编辑的 以便 清除它 HTML 片段 a class dropdown toggle p class custom datepicker
  • Cin 在 while 循环中

    因此 我环顾四周 无法弄清楚在 While 循环期间 cin 发生了什么 我正在阅读 C Primer 第 5 版 一书 我注意到在其中一个练习中 我无法使用 cin 来获取字符串 除非它不终止 while 循环 我仅使用 getline
  • 水平和垂直滚动 HTML 表格,同时左列固定

    我正在尝试创建一个HTML表在哪里身高有限水平滚动时左侧保持固定 并且表格主体可水平滚动 但垂直滚动时左侧不固定 左侧将与表格的其余部分一起滚动 fixed scrollable 1 body content 2 body content
  • 在 jquery 中处理 $(window).scroll 函数的更有效方法?

    在下面的代码中 我检查窗口是否滚动超过某个点 如果是 则更改元素以使用固定位置 以便它不会滚动到页面顶部 唯一的问题是 这似乎是高度客户端内存密集型 并且确实降低了滚动速度 因为在每个滚动像素上 我都会一遍又一遍地更新元素上的样式属性 在尝
  • 如何使用 Cognito 身份池生成临时凭证来访问 aws 服务?

    我有一个认知用户池和身份池 我有创建了一个用户在用户池中 我使用 lambda 获取令牌 即访问 刷新 id 令牌对于该用户 现在我想要生成临时凭证即该用户访问 AWS 服务的访问密钥和秘密访问密钥 我怎么能这样做呢 这是我用来生成令牌的代
  • 如何优化这个复杂的EAV MYSQL查询?

    是否可以优化我写的这个查询 我创建了一种动态虚拟数据库 使我的用户能够添加自定义字段而不影响数据库结构 这是迄今为止结构的非常简化的视图 tables columns db cases caseid db structure fieldna
  • R POSIXct 返回 NA 为“03/12/2017 02:17:13”

    我有一个包含以下日期以及其他几个日期的数据集 03 12 2017 02 17 13 我想将整个数据集放入数据表中 所以我使用read csv and as data table创建DT 其中包含date中的日期 时间信息 接下来我用了 D
  • 使用 SSE 将向量乘以常数

    我有一些在 4D 向量上运行的代码 目前我正在尝试将其转换为使用 SSE 我在 64b linux 上同时使用 clang 和 gcc 仅对向量进行操作就可以很好地理解这一点 但现在我必须将整个向量乘以一个常数 像这样 float y 4
  • 如何将 .xls 文件转换为 .csv 文件?

    如何转换 xls to csv在 Perl 中 这个模块是什么 有这方面的例子吗 最好的转换方式是什么 use Spreadsheet ParseExcel my xlsparser Spreadsheet ParseExcel gt ne
  • 使用 jQuery 切换同级元素

    我想切换列表中链接的下一个同级链接 如下所示 ul li a href 1 a li li a href 2 a ul class selected li a href 2 1 a li li a href 2 2 a li li a hr
  • 使用 BULK INSERT 命令将 CSV 文件导入 SQL Server 表

    我有 CSV 文件 其中有几个数据列 CSV 文件看起来像 字段1 测试1字段2 测试2字段3 测试3 测试4 测试5 在这种情况下 我可以使用哪个库作为字段终止符 我的意思是如果我使用此查询将 CSV 文件插入到shopifyitem表
  • 如何覆盖 CSS 类的属性以避免复制和重命名样式

    我对 CSS3 相当陌生 我希望能够执行以下操作 当我将一个类添加到元素中时 它会覆盖该特定元素中使用的另一个类的属性 假设我有 a class left carousel control href carousel 我希望能够添加一个名为
  • UIImageView动画消耗内存太多

    我的记忆和动画图像有问题 首先 我正在使用 ARC 在我的初始屏幕上 我有大约 60 个要制作动画的图像 我正在使用此代码进行动画 NSMutableArray images NSMutableArray alloc init int an