_UIReplicantView和snapshotViewAfterScreen更新如何获取其内容?

-renderInContext:自从它出现以来就被广泛的使用,但是不可能渲染OpenGL图层,AVPreviewLayer(可能是因为是一种OpenGL图层),我仍然无法正确渲染CATiledLayer。
在iOS7中引入了2个新API来获取屏幕截图,其中一个是-snapshotViewAfterScreenUpdates:返回一个特定的视图( _UIReplicantView )和-drawViewHierarchyInRect:afterScreenUpdates:最后一个是-renderInContext的一种replace,不幸的是它似乎有相同的限制。
-snapshotViewAfterScreenUpdates:它似乎也适用于OpenGL和AVPreviewLayer,不幸的是,如果你想做特定的animation或者使用内容作为背景(比如一个uibutton),那么这样的视图并不是很有用。 我试图从返回的视图中获取内容,但是我仍然没有运气。
有人试过了吗?

我一直在努力解决这个问题,最初我们通过挂钩NSRunLoop并渲染图像然后将它们合并在一起来解决这个问题。 这真是一团糟

然后我们发现了一段看起来可以解决这个问题的代码,但是你必须做好准备在盒子外面思考一下。

那个框架logging了一个UIWindow的video,然后我们就停止logging。 通过一个AVAssetImageGenerator(或类似的东西),并抓取图像。

正如我所说这是一个很奇怪的方法来解决它,但它似乎对我们行得通。

(ASScreenRecorder)的代码可以在这个库中find。

https://github.com/alskipp/ASScreenRecorder

我们的产品中的一个菜单是OpenGL,一些菜单有video背景! 这对我们来说是完美的。 但是我不能确定这是否是我们实现和使用OpenGL的特别之处。 虽然作为他的示例video节目,但它绝对适用于相机视图。