Скопируйте изображение с помощью UIPasteBoard (Swift)

Недавно я видел этот проект, в котором пользователь может нажать на GIF-файл с пользовательской клавиатуры, и он увидит, что появляется «скопированная» всплывающая подсказка. У меня есть один вопрос:

  • Как воспроизвести эту всплывающую подсказку в продуктах GIF-Tutorial?

Может ли кто-нибудь дать мне пример кода для работы. Я понимаю, как использовать UIPasteboard и его функции, но я не могу заставить его работать, когда я вставляю тип UTI «public.png» в эту функцию: (я заметил, что в Objective-c это «@public.png ", но я поместил "public.png", я не смог найти источник в Интернете для этого)

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

person Guled    schedule 05.12.2014    source источник


Ответы (2)


Попробуйте использовать этот код:

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

вы можете узнать, как это работает здесь!

Надеюсь это поможет

Свифт 5.1

UIPasteboard.general.image = image
person user2277872    schedule 05.12.2014
comment
Возможно, мне придется попробовать это на физическом устройстве. Симулятор не позволит мне увидеть вставленное изображение. - person Guled; 05.12.2014
comment
Это было бы хорошей идеей. В iOS есть много инструментов, которые требуют тестирования на физическом устройстве. - person user2277872; 05.12.2014

При использовании UIPasteboard.generalPasteboard().image = image; кажется, что изображение не копируется на монтажный стол. Вместо этого попробуйте следующий код, он также объясняет, как вы можете заменить строку "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)")
        }
    }
}
person SoftDesigner    schedule 13.05.2015