Swift 将UIImage导出为消息应用程序的贴纸

Swift 将UIImage导出为消息应用程序的贴纸,swift,imessage,ios-stickers,mssticker,msstickerview,Swift,Imessage,Ios Stickers,Mssticker,Msstickerview,我正在尝试将UIImage导出为Messages应用程序的贴纸,但找不到任何相关文档 我的项目启用了贴纸包扩展功能,看到Xcode创建了一个新的贴纸。xcassets,我在那里手动添加的每个图像都会显示在Messages应用程序上用作贴纸,但我如何在那里编程保存图像,以便用户可以从任何图像创建贴纸 我所能找到的只是与创建贴纸相关的信息,而无需编写任何代码,只需发送带有预定义图像的应用程序 let sticker = try MSSticker(contentsOfFileURL: url, lo

我正在尝试将UIImage导出为Messages应用程序的贴纸,但找不到任何相关文档

我的项目启用了贴纸包扩展功能,看到Xcode创建了一个新的贴纸。xcassets,我在那里手动添加的每个图像都会显示在Messages应用程序上用作贴纸,但我如何在那里编程保存图像,以便用户可以从任何图像创建贴纸

我所能找到的只是与创建贴纸相关的信息,而无需编写任何代码,只需发送带有预定义图像的应用程序

let sticker = try MSSticker(contentsOfFileURL: url, localizedDescription: "Test")

我知道如何从图像文件创建MSSticker,但在此之后,我不知道如何继续并使新创建的标签显示在消息应用程序上。

标签从标签资产目录
.xstickers
加载。 此目录是一个资源文件/文件夹,这意味着它位于捆绑包中。捆绑包中的所有文件都不可写,它们只有读取权限。IMO您需要做的是:

  • 您必须将用户自定义图像存储在任何一个沙盒文件夹(文档、库和临时文件夹)中

  • 从该文件夹中读取图像,并以与您相同的方式创建
    MSSticker
    。-
    let sticker=try MSSticker(contentsofileurl:url,localizedDescription:“Test”)
    并添加。这张贴纸是用来排列的

  • msstickerbrowservicewcontroller
    中,您将从上一步创建的阵列中加载标签
像这样

override func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
    stickers.count
}

override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView,
                                 stickerAt index: Int) -> MSSticker {
    stickers[index]
}

好的,这显示了一个带有我创建的标签的浏览器视图。但我不明白显示此视图如何将它们导入到Messages应用程序。这是我想做的一个例子:你解决了这个问题吗?对不起,我想不出办法让它像你希望的那样工作。