将GIF复制到UIPasteboard

时间:2015-11-12 15:37:26

标签: ios swift cocoa gif uipasteboard

我尝试将GIF图像复制到UIPasteboard中,目前它只复制图像的静态版本,并且当我将其上传到某处时,似乎将其转换为PNG,查看文件扩展名。

想知道是否有人知道如何实现这一目标?我发现的所有其他解决方案在从URL而不是从包中的图像获取NSData时似乎只能工作

2 个答案:

答案 0 :(得分:9)

对于遇到此问题的任何人,我设法找到了解决方案

let url: NSURL = NSBundle.mainBundle().URLForResource("\(self.imageNames[indexPath.row])", withExtension: ".gif")!
let data: NSData = NSData(contentsOfURL: url)!
UIPasteboard.generalPasteboard().setData(data, forPasteboardType: "com.compuserve.gif")

事实证明,您确实需要使用网址并从该网址中提取GIF的NSData

这里我获取了我的包中的GIF的URL,使用图像的名称和扩展名搜索它。然后我在粘贴板和宾果游戏中设置数据,从粘贴板粘贴结果时我们有一个动画GIF

答案 1 :(得分:1)

看起来粘贴板上的图像属性不支持GIF类型。

  

The associated array of representation types is UIPasteboardTypeListImage, which includes types kUTTypePNG and kUTTypeJPEG.

您可以使用GIF中的NSData执行此操作:

import MobileCoreServices

// ...

var image = UIImage(...)
let data = NSData(bytes: &image, length: sizeof(UIImage))
UIPasteboard.generalPasteboard().setData(data, forPasteboardType: kUTTypeGIF as String)) // com.compuserve.gif