将图片保存到Simulator中的“照片”应用中-在iOS 13中生成屏幕截图

时间:2019-06-05 03:24:43

标签: ios swift uigraphicscontext ios13

编辑

  • 这似乎是运行iOS 13 Beta的模拟器的“照片”应用程序中的错误。
  • 实际上,尝试使用Safari结果从任何网站下载任何图像时,都将灰色的“占位符”图像(如下)保存到“照片”中。
  • 此外,尝试共享此类图像会立即导致“照片”应用崩溃(共享默认图像有效)。
  • 在运行iOS 13的物理设备上,相同的代码可以正常工作(正确创建并保存图像)。
  • 在“设置”>“此应用”>“允许应用访问”>“照片”中显示“仅添加”,但是如果我点击它以尝试对其进行更改,则“设置”应用崩溃。

原文:

如何从iOS 13的屏幕上创建图像?

在iOS 12中,此代码有效:

UIGraphicsBeginImageContextWithOptions(view.frame.size, false, 0.0)
view.drawHierarchy(in: view.frame, afterScreenUpdates: true)
let myImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

但是在使用iOS 13模拟器的Xcode 11中,它会生成带有一些文本的像素化图像:

enter image description here

谁知道应该更改什么? Xcode 11似乎正在运行与Xcode 10.2(Swift 5)相同的Swift版本。

1 个答案:

答案 0 :(得分:0)

此错误似乎已在iOS 13 Developer Beta 2 / Xcode 11 beta 2中修复。

  • 上面的代码新生成了屏幕截图
  • 从Safari下载的图像会保存并正确显示
  • 在“设置”中尝试更改该应用的照片访问权限仍然会导致设置崩溃
  • 尝试共享以前生成的损坏图像仍然会导致“照片”应用崩溃
  

Xcode 11.0 beta 2(11M337n)
  iOS 13.0(17A5508l)