gpt4 book ai didi

iOS13分享表: how to set preview thumbnail when sharing UIImage

转载 作者:行者123 更新时间:2023-12-01 18:35:45 26 4
gpt4 key购买 nike

iOS13 上的新共享表在左上角显示正在共享的项目的预览/缩略图。

当使用 UIActivityViewController 共享 UIImage 时,我希望在那里显示正在共享的图像的预览/缩略图(例如,当共享附加到内置邮件应用程序的图像时),但共享表显示的是我的应用程序的图标。

需要哪些代码/设置才能在共享表中显示正在导出的图像的缩略图?

我已按如下方式设置 UIActivityViewController:

let image = UIImage(named: "test")!
let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)

最佳答案

我实现的用于共享具有更好用户体验的 UIImage 的最简单代码:

  1. 导入 LinkPresentation 框架:
#import <LinkPresentation/LPLinkMetadata.h>  // for Obj-C

import LinkPresentation // for Swift, below
  • UIViewController 中显示 UIActivityViewController,并使用 [image, self]:
  • let image = UIImage(named: "YourImage")!
    let share = UIActivityViewController(activityItems: [image, self], applicationActivities: nil)
    present(share, animated: true, completion: nil)
  • 使UIViewController符合UIActivityItemSource:
  • func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
    return ""
    }

    func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
    return nil
    }

    func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
    let image = UIImage(named: "YourImage")!
    let imageProvider = NSItemProvider(object: image)
    let metadata = LPLinkMetadata()
    metadata.imageProvider = imageProvider
    return metadata
    }

    因为UIImage已经符合NSItemProviderWriting,所以只需将其提供给NSItemProvider即可。

    由于它共享 UIImage,因此不应预期任何 URL。否则用户可能会获得 URL 共享,而不是图像共享体验。

    要加速共享表预览,请为 LPLinkMetadata 对象提供现有资源。无需再次在线获取。查看 WWDC19 技术讲座视频 What's New in Sharing了解更多详情。

    关于iOS13分享表: how to set preview thumbnail when sharing UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57850483/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com