Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用混合视图控制器、3d场景工具包、uiwebkit捕捉屏幕_Ios_Swift_Uiviewcontroller_Cgcontext_Scenekit - Fatal编程技术网

Ios 使用混合视图控制器、3d场景工具包、uiwebkit捕捉屏幕

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())

我的iPad应用程序可以截屏显示除3d scenekit VC之外的所有视图控制器

这是我捕获屏幕的代码

  @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。