首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数粘贴(itemProviders:[NSItemProvider]) {

函数粘贴(itemProviders:[NSItemProvider]) {
EN

Stack Overflow用户
提问于 2019-05-23 04:37:54
回答 1查看 329关注 0票数 0

我在同一个应用程序中使用多个imagesViews的“拖动”和“粘贴”功能到多个imageViews。由于函数"drop“允许知道原点的imageView,那么函数”drop“是否可以知道”拖动“末尾的imageView”目标“(坐标?标签?...)。感谢您的任何建议。

//就在这里,itemsForBeginning session: UIDragSession)允许检索源imageView。

代码语言:javascript
复制
func dragInteraction(_ interaction: UIDragInteraction, itemsForBeginning session: UIDragSession) -> [UIDragItem] {

    let touchPoint = session.location(in: self.view)
    print("\(touchPoint.x)")
    print("\(touchPoint.y)")
    //...

    guard let image = viewTaped!.image else { return [] }
    let item = UIDragItem(itemProvider: NSItemProvider(object: image))
    return [item]
}

//但是通过粘贴功能,Swift知道目标,但是我能和如何恢复imageView_yyy的信息吗?(坐标?标签?...)。

代码语言:javascript
复制
override func paste(itemProviders: [NSItemProvider]) {
    _ = itemProviders.first?.loadObject(ofClass: UIImage.self, completionHandler: { (image: NSItemProviderReading?, error: Error?) in
        DispatchQueue.main.async {
            self.imageView_yyy.image = image as? UIImage
        }
    })
}
EN

回答 1

Stack Overflow用户

发布于 2019-05-23 06:14:33

您需要保留加载回调。通过将其分配给_,您就是在告诉Swift它是可以立即丢弃的垃圾

代码语言:javascript
复制
// This retains the progress
var pasteProgress: Progress?

override func paste(itemProviders: [NSItemProvider]) {
    pasteProgress = itemProviders.first?.loadObject(ofClass: UIImage.self, completionHandler: { (image: NSItemProviderReading?, error: Error?) in
        DispatchQueue.main.async {
            self.imageView_yyy.image = image as? UIImage
        }
    })
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56264655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档