2014-12-05 13 views
5

Niedawno zobaczyłem ten projekt, w którym użytkownik może dotknąć GIF-a z niestandardowej klawiatury, a oni zobaczą "skopiowany" toolip. Mam jedno pytanie:Kopiowanie obrazu za pomocą UIPasteBoard (Swift)

  • W jaki sposób można odtworzyć tę podpowiedź w produktach GIF-Tutorial?

Czy ktoś mógłby mi podać przykładowy kod do pracy. Rozumiem, jak korzystać z UIPasteboard i jego funkcji, ale nie mogę sprawić, by działało, gdy wstawię typ UTI "public.png" w tej funkcji: (zauważyłem w Objective-c jest to "@ public.png" ”, ale umieściłem«public.png»nie mogłem znaleźć źródło online za to)

let imageURL = NSString(string:NSBundle.mainBundle().pathForResource("test", ofType: "png")!) 
     var data = NSData(contentsOfURL: NSURL(string:imageURL)!) 
     UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: "public.png") 

Odpowiedz

4

Spróbuj użyć tego kodu:

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

można się dowiedzieć, jak to działa here!

Mam nadzieję, że to pomoże

+0

Może będę musiał spróbować na urządzeniu fizycznym. Symulator nie pozwoli mi zobaczyć mojego "wklejonego" obrazu. – Guled

+1

To byłby dobry pomysł. W systemie iOS dostępnych jest wiele narzędzi, które wymagają testowania na urządzeniu fizycznym. – user2277872

7

Podczas korzystania z UIPasteboard.generalPasteboard().image = image; wydaje się, że obraz nie jest kopiowany do obszaru roboczego. Zamiast tego wypróbuj następny kod, wyjaśniono również, w jaki sposób można zastąpić ciąg znaków: "public.png":

// The Pasteboard is nil if full access is not granted 
// 'image' is the UIImage you about to copy to the pasteboard 
if let pb = UIPasteboard.generalPasteboard() { 
    let type = UIPasteboardTypeListImage[0] as! String 
    if !type.isEmpty { 
     pb.setData(UIImagePNGRepresentation(image), forPasteboardType: type) 
     if let readData = pb.dataForPasteboardType(type) { 
      let readImage = UIImage(data: readData, scale: 2) 
      println("\(image) == \(pb.image) == \(readImage)") 
     } 
    } 
} 
+0

Dam ci spróbować. Dzięki za pomoc. – Guled

+0

Dziękuję za pracę. – kb920

Powiązane problemy