2015-11-12 84 views
6

我試圖GIF圖像複製到UIPasteboard在迅速,目前它僅複製圖像的靜態版本,似乎將其轉換成PNG查看文件擴展名,當我把它上傳某處。複製GIF到UIPasteboard

想知道如果任何人有任何想法如何實現這一目標?我只發現了所有其他soltions似乎從一個網址,而不是從圖像中的束

+0

請顯示您當前如何將圖像複製到粘貼板。 – JAL

+0

我正在使用'UIPasteboard.generalPasteboard()。image = imageToCopy'來複制當前的GIF。 –

回答

7

對於誰以往任何時候都遇到這個問題,我設法找到一個解決辦法的人

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") 

事實證明您確實需要使用URL並從該URL中提取GIF的NSData

在這裏,我得到那個是我捆GIF的網址,使用名稱和形象的延伸尋找它。然後,我將數據設置在粘貼板和賓果遊戲中,粘貼來自粘貼板的結果時,我們有一個動畫GIF

+0

如何加載如果我將從服務器動態獲取.gif文件? – Ramakrishna

1

它看起來並不像剪貼板圖像屬性獲得的NSData時支持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 
+0

感謝您的快速回復!這在很大程度上起作用,並將圖像設置爲GIF,但不幸的是不會將其轉換爲「圖像」。相反,當我將剪貼板的內容複製到消息中時,它會顯示爲一個文件,而不是可視化的GIF,它會像GIPHY這樣的應用程序執行。謝謝 –

+0

嗯,好吧,我必須不斷思考更好的實施。 – JAL

+0

它必須與創建NSData的方式有關,因爲將剪貼板類型設置爲PNG或JPEG時會發生同樣的情況。此外,正在發送的文件的大小隻有8個字節,顯然不能是正確的 –