我尝试将GIF图像复制到UIPasteboard中,目前它只复制图像的静态版本,并且当我将其上传到某处时,似乎将其转换为PNG,查看文件扩展名。
想知道是否有人知道如何实现这一目标?我发现的所有其他解决方案在从URL而不是从包中的图像获取NSData时似乎只能工作
答案 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类型。
您可以使用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