在 SLComposeServiceViewController 中更改预览图像

Change the preview image in an SLComposeServiceViewController

我创建了一个 Safari 共享扩展,我从当前 URL 中获取特定图像。该部分已完成,但现在我正在尝试将 SLComposeServiceViewController 上的预览图像替换为我从 URL 中抓取的图像。我似乎无法找到一种方法来更改由 SLComposeServiceViewController

自动生成的预览图像

如何更改此图片?

我尝试在 NSExtenstionContextinputItems 属性 处寻找,但只能看到 URL。

extension NSExtensionContext {
  for item in self.inputItems {
    if let extenstionItem = item as? NSExtensionItem {
      print("attachments = \(extenstionItem.attachments)")
    }
  }
}

attachments = Optional([<NSItemProvider: 0x12d513e70> {types = ( "public.url" )}])

我希望无需创建自己的视图即可更改此图像,因为这是我需要对默认值进行的唯一更改。

即使能够隐藏默认放置在那里的图像也会有所帮助!

我找到了完成这个的方法。您用图像覆盖 SLComposeServiceViewController subclass 中的 loadPreviewView() 和 return UIImageView(或任何视图)。要在同一运行时更新它,请在 class.

中保留对它的引用
override func loadPreviewView() -> UIView! {        
  imagePreviewView = UIImageView(image: UIImage(named: "imageName"))
  return imagePreviewView
}