在Screencapture视图中使用时,UIImageView拖动生涩

时间:2013-02-22 07:56:01

标签: iphone ios objective-c ios6

我正在一个项目中工作,我需要拖动图像并为其创建视频, 我在主视图中使用它时工作正常。

我使用ScreencaptureView.hScreencaptureView.m文件进行视频录制,我在主视图中对其进行子视图,并在捕获视图中添加子视图图像对象。

现在问题是因为我在ScreencaptureView子视图中拖动变得很慢。

可以采取哪些措施来解决这个问题。

2 个答案:

答案 0 :(得分:0)

试试这个

  • 在触摸开始事件期间,首先,将视图拖动到根视图作为子视图。呼叫 bringSubviewToFront方法使拖动的视图保持在根视图层次结构的顶部。
  • 确保根视图应该是拖动视图和父视图的父视图 目标视图(在您的情况下为ScreencaptureView)。
  • 在触摸结束事件期间将拖动的视图添加到目标视图(ScreencaptureView)。

答案 1 :(得分:0)

我放慢你的动画效果并不奇怪。捕获并作为图像保存到内存的数据量很大。这里没有奇迹。必须将数据从图形内存刷新到RAM然后再刷新到磁盘,这需要很长时间。我建议你分两步完成。主要思想是在实时捕获尽可能少的数据。

- 第1步:实时捕捉

不要将您的子视图放在ScreencaptureView中用于此步骤,而是在普通视图中,或者如果该选项可用,则禁用捕获。 仅捕获您在字典中的每个图像上创建的翻译值,例如,键指向您的图像(带有指向图像的指针的NSValue)。每帧保存一个字典。然后你有一系列字典。您可以想象存储转储数据的其他解决方案。 您可以以30 fps或60 fps轻松完成。 这样你的捕获非常轻巧,动画对于用户来说将是非常流畅的。

-step 2:REPLAY - POST-PROCESSING

现在您可以将您的子视图放在ScreencaptureView中,或者只是简单地激活捕获模式。 通过读取您记录的值重新播放动画,并将相应的翻译重新应用于图像(您必须保留它们)并像往常一样捕获帧。现在它可能会变慢但无关紧要。框架将逐一处理。

这已经完成了!您现在拥有动画的流畅视频截图。

是否清楚?