如何在 UIActivityViewController 中显示带有文本的 URL 图标?
How to show URL icon with text in UIActivityViewController?
我尝试了不同的方法来显示带有文本的 URL 图标,但没有成功。这是代码及其输出片段
示例 1:
let text = "I am text"
let myWebsite = URL(string:"https://www.youtube.com/")
let shareAll = [text, myWebsite] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareAll, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
输出 1:
UIActivity View Messages View
示例 2:
let myWebsite = URL(string:"https://www.youtube.com/")
let shareAll = [myWebsite] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareAll, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
输出 2:
UIActivity View
必填:
我想要示例 1 的输出 2 中的 URL 图标。
共享数据和显示数据是有区别的——我认为在你的情况下,显示即将共享的数据.
我可能是错的,但如果不是,您 实际上 能够共享数据 - 在本例中是 UIImage
和文本 - 但希望显示什么关于要分享。不久前我遇到了这个问题。这是我的代码。看看它是否可以帮助你 - 基本上你需要将元数据添加到 UIActivityViewController
delegate.
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
let shareImage = preview.uiImage.adjustedForShareSheetPreviewIconProvider()
let imageProvider = NSItemProvider(object: shareImage)
let metadata = LPLinkMetadata()
metadata.imageProvider = imageProvider
metadata.title = "Title"
return metadata
}
根据需要调整 shareImage
和 title
。
编辑
我正在使用我的代码,但不完整。 adjustedForShareSheetPreviewIconProvider()
是 UIImage
的一部分,因此,它假定了这一点。在我的代码中,我实际上是将 GLKView
调用到 return 这个 UIImage
,然后在元数据中以这种方式使用它。
因此,如果您的图像是 return 从 URL 编辑的,作为图标 并且 是(或可以转换为)UIImage
,就像我上面的代码一样将它添加到元数据中。
我尝试了不同的方法来显示带有文本的 URL 图标,但没有成功。这是代码及其输出片段
示例 1:
let text = "I am text"
let myWebsite = URL(string:"https://www.youtube.com/")
let shareAll = [text, myWebsite] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareAll, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
输出 1: UIActivity View Messages View
示例 2:
let myWebsite = URL(string:"https://www.youtube.com/")
let shareAll = [myWebsite] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareAll, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
输出 2:
UIActivity View
必填: 我想要示例 1 的输出 2 中的 URL 图标。
共享数据和显示数据是有区别的——我认为在你的情况下,显示即将共享的数据.
我可能是错的,但如果不是,您 实际上 能够共享数据 - 在本例中是 UIImage
和文本 - 但希望显示什么关于要分享。不久前我遇到了这个问题。这是我的代码。看看它是否可以帮助你 - 基本上你需要将元数据添加到 UIActivityViewController
delegate.
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
let shareImage = preview.uiImage.adjustedForShareSheetPreviewIconProvider()
let imageProvider = NSItemProvider(object: shareImage)
let metadata = LPLinkMetadata()
metadata.imageProvider = imageProvider
metadata.title = "Title"
return metadata
}
根据需要调整 shareImage
和 title
。
编辑
我正在使用我的代码,但不完整。 adjustedForShareSheetPreviewIconProvider()
是 UIImage
的一部分,因此,它假定了这一点。在我的代码中,我实际上是将 GLKView
调用到 return 这个 UIImage
,然后在元数据中以这种方式使用它。
因此,如果您的图像是 return 从 URL 编辑的,作为图标 并且 是(或可以转换为)UIImage
,就像我上面的代码一样将它添加到元数据中。