Ios 使用混合视图控制器、3d场景工具包、uiwebkit捕捉屏幕
我的iPad应用程序可以截屏显示除3d scenekit VC之外的所有视图控制器 这是我捕获屏幕的代码Ios 使用混合视图控制器、3d场景工具包、uiwebkit捕捉屏幕,ios,swift,uiviewcontroller,cgcontext,scenekit,Ios,Swift,Uiviewcontroller,Cgcontext,Scenekit,我的iPad应用程序可以截屏显示除3d scenekit VC之外的所有视图控制器 这是我捕获屏幕的代码 @IBAction func screenImage(sender: UIBarButtonItem) { //Create the UIImage UIGraphicsBeginImageContext(view.frame.size) view.layer.renderInContext(UIGraphicsGetCurrentContext())
@IBAction func screenImage(sender: UIBarButtonItem) {
//Create the UIImage
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
//save to user documents access via iTunes
CaptureOutput.saveImage(screenshot)
}
我将屏幕捕获VC设置为最高的atIndex级别,所有其他VC的atIndex都小于此级别
从节目中
我的手机拍的。
我需要强制渲染场景工具包吗?如果是,怎么做?有什么帮助吗
有一个已确认的错误(雷达号17851775)
他们还提供了一个解决办法。他们建议:
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
UIImage *im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
/* Use im */
我应该这样做
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
自从iOS 7以来,捕获视图的推荐方法是使用 (或在文档中的“捕获视图快照”下列出的其他方法之一)。它捕获了CALayer内容中没有的内容,我相信其中包括SceneKit呈现的OpenGL内容 请注意,如果您只需要捕获SceneKit视图,而不需要捕获它所在的视图层次结构的其余部分,则可以使用
SCNView
方法
但是,这些都不会捕捉到你的手和手机的反射 由于iOS 7,捕获视图的推荐方法是使用 (或在文档中的“捕获视图快照”下列出的其他方法之一)。它捕获了CALayer内容中没有的内容,我相信其中包括SceneKit呈现的OpenGL内容 请注意,如果您只需要捕获SceneKit视图,而不需要捕获它所在的视图层次结构的其余部分,则可以使用
SCNView
方法
但是,这些都不会捕捉到你的手和手机的反射 由于iOS 7,捕获视图的推荐方法是使用 (或在文档中的“捕获视图快照”下列出的其他方法之一)。它捕获了CALayer内容中没有的内容,我相信其中包括SceneKit呈现的OpenGL内容 请注意,如果您只需要捕获SceneKit视图,而不需要捕获它所在的视图层次结构的其余部分,则可以使用
SCNView
方法
但是,这些都不会捕捉到你的手和手机的反射 由于iOS 7,捕获视图的推荐方法是使用 (或在文档中的“捕获视图快照”下列出的其他方法之一)。它捕获了CALayer内容中没有的内容,我相信其中包括SceneKit呈现的OpenGL内容 请注意,如果您只需要捕获SceneKit视图,而不需要捕获它所在的视图层次结构的其余部分,则可以使用
SCNView
方法
但是,这些都不会捕捉到你的手和手机的反射 此工作
view.drawViewHierarchyInRect(view.bounds,afterScreenUpdates:true)
此工作view.drawViewHierarchyInRect(view.bounds,afterScreenUpdates:true)
此工作view.drawViewHierarchyInRect(view.bounds,afterScreenUpdates:true)
此工作view.drawViewHierarchyInRect(view.bounds,AfterScreenUpdate:true)
实际上是另一种方式。而不是RenderContext,调用drawViewHierarchy。实际上是另一种方式。而不是RenderContext,调用drawViewHierarchy。实际上是另一种方式。而不是RenderContext,调用drawViewHierarchy。实际上是另一种方式。而不是RenderContext,调用drawViewHierarchy。