我有两种方法可以拍摄屏幕快照并将捕获的图像分享给展示UIActivityViewController
的其他应用。
方法1只需获取屏幕快照并将捕获的图像共享为UIImage
。
方法2非常相似,但包括一个额外的步骤。方法2采用屏幕快照,但在将捕获的图像共享为UIImagePNGRepresentation
之前使用NSData
。
使用的每种方法都会产生共享图像质量的差异。方法1产生无损(即消息和邮件)或有损(即Notes,Photos,Messenger)的图像质量,而方法2产生对所有应用程序无损的图像质量(除了产生错误的Messenger {{1并且无法分享)。
使用方法2是保持共享图像完美的明显选择,但是......
问题
为什么Messenger会产生错误Unable to load content
?
可以采取哪些措施来更改下面的代码,或者可以使用哪个对象来确保所有图像共享,1)采用无损格式,以及2)没有错误?
表格
代码
Unable to load content
图片
在iOS中展示import UIKit
class ViewController: UIViewController {
var imageSnapshot: UIImage!
var imageSnapshotPNG: NSData!
func screenSnapshot() {
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 0)
self.view.drawViewHierarchyInRect(CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height), afterScreenUpdates: false)
imageSnapshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
@IBAction func shareImage(sender: UIButton) {
screenSnapshot()
let activity = UIActivityViewController(activityItems: [imageSnapshot], applicationActivities: nil)
self.presentViewController(activity, animated: true, completion: nil)
}
@IBAction func shareImagePNG(sender: UIButton) {
screenSnapshot()
imageSnapshotPNG = UIImagePNGRepresentation(imageSnapshot)!
let activity = UIActivityViewController(activityItems: [imageSnapshotPNG], applicationActivities: nil)
self.presentViewController(activity, animated: true, completion: nil)
}
}
。
“无法加载内容”错误消息。