具有数百个全屏图像的 UIImageView

Posted

技术标签:

【中文标题】具有数百个全屏图像的 UIImageView【英文标题】:UIImageView with hundreds of fullscreen images 【发布时间】:2010-11-08 21:26:27 【问题描述】:

我有问题。我有一个 UIImageView 和 144 个全屏图像(960x640)。我有一个定时器,它每秒将 15 张图像加载到 UIImageView 中。最后,图像像电影一样播放。一切正常,但我收到 iphone4 内存警告。我只有一个保存图像文件路径的数组。需要显示的图片是用initWithContentsOfFile加载的。

在我看来,我使用 UIImageView 做得最好。但正如我所说,我收到内存警告,即使在 iphone4 上也似乎有点慢。

我想更好的方法是使用 cocos2d/openGL 或 Core Animation。但我不知道从哪里开始。它必须快速(良好的性能)并且内存占用量应该尽可能小。

希望有人能指出我正确的方向。

提前谢谢

【问题讨论】:

为什么不将图像编码成视频并播放视频? 因为我必须在某些帧上添加附加信息。并且应该可以通过手指的触摸和拖动来实现向前和向后、慢和快播放。 @Evan Mulawski 你的建议可能对我有用。在哪里可以找到更多信息? 【参考方案1】:

您可能想在这里偷看:best way to load an image library of iphone nsmutablearray (600+ items)

我不久前进行了一些测试,以完成听起来与您正在做的事情相似的事情。

【讨论】:

【参考方案2】:

这会有帮助吗?

http://appsamuck.com/day2.html

   // create the view that will execute our animation
 UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame];

 // load all the frames of our animation
 campFireView.animationImages = [NSArray arrayWithObjects:    
                             [UIImage imageNamed:@"campFire01.gif"],
                             [UIImage imageNamed:@"campFire02.gif"],
                             [UIImage imageNamed:@"campFire03.gif"],
                             [UIImage imageNamed:@"campFire04.gif"],
                             [UIImage imageNamed:@"campFire05.gif"],
                             [UIImage imageNamed:@"campFire06.gif"],
                             [UIImage imageNamed:@"campFire07.gif"],
                             [UIImage imageNamed:@"campFire08.gif"],
                             [UIImage imageNamed:@"campFire09.gif"],
                             [UIImage imageNamed:@"campFire10.gif"],
                             [UIImage imageNamed:@"campFire11.gif"],
                             [UIImage imageNamed:@"campFire12.gif"],
                             [UIImage imageNamed:@"campFire13.gif"],
                             [UIImage imageNamed:@"campFire14.gif"],
                             [UIImage imageNamed:@"campFire15.gif"],
                             [UIImage imageNamed:@"campFire16.gif"],
                             [UIImage imageNamed:@"campFire17.gif"], nil];

 // all frames will execute in 1.75 seconds
 campFireView.animationDuration = 1.75;
 // repeat the annimation forever
 campFireView.animationRepeatCount = 0;
 // start animating
 [campFireView startAnimating];
 // add the animation view to the main window 
 [self.view addSubview:campFireView];

【讨论】:

不,那几乎和我一样。但我在内存中只有当前图像,而不是整个图像。 但是它会给你同样的内存警告吗?

以上是关于具有数百个全屏图像的 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章

具有数百个输入的巨大 React 状态数组,状态变化缓慢 onChange

具有数百个数据库连接的 MVC 应用程序

Dash:如何更新回调中的数百个元素?

如何高效地处理数百个项目中的数千个 C# 文件?

几行 Python 代码就可以提取数百个时间序列特征

ASP.Net Core:突然出现数百个构建错误