相关疑难解决方法(0)

如何拍摄UIView的屏幕截图?

我想知道我的iPhone应用程序如何利用特定的屏幕截图UIView作为UIImage.

我试过这段代码,但我得到的只是一张空白图片.

UIGraphicsBeginImageContext(CGSizeMake(320,480));
CGContextRef context = UIGraphicsGetCurrentContext();
[myUIView.layer drawInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

myUIView尺寸为320x480,并且有一些子视图.这样做的正确方法是什么?

screenshot objective-c uiview ios

131
推荐指数
9
解决办法
10万
查看次数

AVPlayer和视频的屏幕截图

我试图AVPlayer在一个更大的视图内截取屏幕截图.我想只构建一个测试框架,所以私有APIs或任何方法都是好的,因为在发布到AppStore时不会包含框架.

我试过用

  • UIGetScreenImage() :在模拟器上运行良好但在设备上运行不正常
  • snapshotviewafterscreenupdates:它显示视图,但我不能创建一个UIImage.
  • drawViewInHierarchy并且renderInContext不会合作AVPlayer
  • 我不想AVAssetGenerator用于从视频中获取图像,很难获得良好的坐标或视频播放器作为其他视图的子视图

testing objective-c avfoundation ios avplayer

48
推荐指数
2
解决办法
4931
查看次数

带有嵌入式 Youtube 视频的 WKWebview 的 iOS 全屏捕获

我一直在寻找很长时间,我发现了一些提示,但我无法弄清楚如何将其应用于我的问题。将不胜感激任何帮助。

试图实现的目标非常简单:

我的应用程序包括一个播放 youtube 视频的 WKWebview(带有一些叠加文本)。我添加了一个链接来截取屏幕截图并将其保存到相机胶卷中。

结果:

它在模拟器中完美运行,但在设备上我只能看到覆盖文本和背景(应该是视频)是黑色的。

这是我当前的代码(SWIFT 3):

...
// Save screenshot
UIImageWriteToSavedPhotosAlbum(captureScreen(), nil, nil, nil)
...

func captureScreen() -> UIImage {
    UIGraphicsBeginImageContextWithOptions(webView!.bounds.size, webView!.isOpaque, 0)
    webView!.drawHierarchy(in: webView!.bounds, afterScreenUpdates: false)
    let image = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
    return image
}
Run Code Online (Sandbox Code Playgroud)

我也试过(结果相同)

...
UIImageWriteToSavedPhotosAlbum(captureScreen(), nil, nil, nil)
...

func captureScreen() -> UIImage {
    let image = UIApplication.shared.screenShot!
    return image
}
Run Code Online (Sandbox Code Playgroud)

我在网上读到我们不能使用 renderInContext: 因为没有捕获包含视频播放器的 GL 层。所以他们建议实际合并 UIImageView 和 EAGLview ( link1 , link2 ) 的内容。

这听起来不错,但我发现的大多数解决方案都是用 Objective-c 编写的或相对复杂的(link3link4link5 …

xcode screenshot ios swift wkwebview

6
推荐指数
0
解决办法
784
查看次数