mel*_*far 9 iphone animation opengl-es
我正在尝试创建自定义转换,以替代您在此处获得的默认转换,例如:
[self.navigationController pushViewController:someController animated:YES];
Run Code Online (Sandbox Code Playgroud)
我准备了一个基于OpenGL的视图,它对映射到平面的一些静态纹理执行效果(假设它是Core Animation中翻转效果的副本).我不知道该怎么做:
非常感谢任何想法或链接!
UPDATE
Jeffrey Forbes的答案非常适合作为捕获视图内容的解决方案.
我还没想到的是如何捕获我想要转换到的视图的内容,在转换完成之前,该视图应该是不可见的.
另外,我应该使用哪种方法来呈现OpenGL视图?出于演示目的,我使用了pushViewController.这会影响导航栏,但实际上我想用一个动画回到一个项目,请检查此视频以获得解释:
另一个选择是使用presentViewController,但显示全屏.你认为创建另一个窗口(或视图?)可能有用吗?
虽然如果我自己不做更多研究,我无法完全回答你的问题,但我可以提供一些帮助:
- 为了获得 UINavigationController 的视图,您需要进行屏幕截图。最简单的方法是将其抓取到 UIImage 中:
UIGraphicsBeginImageContext(self.view.frame.size);
[[self.view layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage* test = UIGraphicsGetImageFromCurrentImageContext();
UIImageView* view = [[UIImageView alloc] initWithImage:test];
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
我不确定你是否可以将 GLContext (在手机上不熟悉)渲染到 CGImage 中,但我会做类似的事情(并从中初始化 UIImage)。我会预渲染您尝试执行的动画的每一帧,并使用其中提供的动画内容将其放入 UIImageView 中。也就是说,如果您的动画足够简单。否则,可能需要编写自己的动画函数:-/