如何使用 Swift 以编程方式粘贴图像?

How do I paste an image programmatically with Swift?

我有一个工作代码,可以将图像复制到 UIPasteboard,但我找不到以编程方式实现 PASTE 功能的方法。有什么想法或提示吗?

以下代码片段可能有效。确保您正在设备上进行测试。

let image = UIImage(named: "person.png")
UIPasteboard.generalPasteboard().image = image;

根据评论,您可以按如下方式进行。我把 objective-c 代码放在这里,我希望你能理解,然后把它转换成 swift.

NSData* pasteData = [[UIPasteboard generalPasteboard] dataForPasteboardType:(NSString*)kUTTypeJPEG];

您可能会在以下 url 中找到 swift 解决方案 Swift UIPasteboard not copying PNG

或者,您可以使用 NSData。它也适用于模拟器。

// Copy
let image = UIImage(named: "sample")
let imageData = UIImageJPEGRepresentation(image!, 1)
UIPasteboard.general.setData(imageData!, forPasteboardType: "image")

// Paste
let imageData = UIPasteboard.general.data(forPasteboardType: "image")
let image = UIImage(data:imageData!)
copiedImage.image = image

Swift 3

如果图像是从另一个应用程序(例如 Safari)复制的,这就是我将其添加到我的应用程序中的方式。我从 UIAlertController 作为 UIAlertAction 触发它。

let pasteboard = UIPasteboard.general
if pasteboard.hasImages {
     myImage.image = pasteboard.image
}