2014-12-05 15 views
5

Gần đây tôi đã thấy dự án này trong đó người dùng có thể nhấn vào GIF từ bàn phím tùy chỉnh và họ sẽ thấy một toolip "sao chép" xuất hiện. Tôi có một câu hỏi:Sao chép ảnh với UIPasteBoard (Swift)

  • Làm thế nào để tạo lại chú giải công cụ này trong các sản phẩm GIF-Tutorial?

Ai đó có thể cho tôi một số mã mẫu để làm việc cùng. Tôi hiểu làm thế nào để sử dụng UIPasteboard và chức năng của nó, nhưng tôi không thể có vẻ để làm cho nó hoạt động khi tôi đặt trong các loại UTI "public.png" trong chức năng này: (Tôi nhận thấy trong Objective-c nó "@ public.png ", nhưng tôi đặt 'public.png' tôi không thể tìm thấy một nguồn trực tuyến cho điều này)

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

Trả lời

4

Hãy thử sử dụng mã này:

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

bạn có thể tìm hiểu cách làm việc này here!

Hy vọng điều này sẽ giúp

+0

Tôi có thể cần thử trên thiết bị thực. Trình mô phỏng sẽ không cho phép tôi xem hình ảnh "đã dán" của tôi. – Guled

+1

Đó sẽ là một ý tưởng hay. Có rất nhiều công cụ trong iOS yêu cầu thử nghiệm trên thiết bị vật lý. – user2277872

7

Khi sử dụng UIPasteboard.generalPasteboard().image = image; có vẻ như hình ảnh không được sao chép vào bảng. Thay vào đó hãy thử mã tiếp theo, nó cũng giải thích cách bạn có thể thay thế "public.png" chuỗi:

// 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

Tôi sẽ thử. Cảm ơn bạn đã giúp đỡ. – Guled

+0

Cảm ơn nó làm việc cho tôi. – kb920

Các vấn đề liên quan