2

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

我的项目启用了Sticker Pack 扩展,并看到 Xcode 创建了一个新的Stickers.xcassets,我在此处手动添加的每个图像都出现在 Messages 应用程序上以用作贴纸,但是如何以编程方式将图像保存在那里,所以用户可以从任何图像创建贴纸?

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

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

我知道如何从图像文件创建一个 MSSticker,但在此之后我不知道如何继续并使这个新创建的贴纸出现在 Messages 应用程序上。

4

1 回答 1

0

贴纸从贴纸资产目录加载.xcstickers。这个目录是一个资源文件/文件夹,这意味着它被放置在你的包中。捆绑包中的所有文件都是不可写的,它们只有读取权限。IMO 你需要做的是:

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

  • 从此文件夹中读取图像并MSSticker以与您相同的方式创建。-let sticker = try MSSticker(contentsOfFileURL: url, localizedDescription: "Test")并添加。这个贴纸阵列。

  • 在您的MSStickerBrowserViewController文件中,您将从上一步创建的数组中加载贴纸。

像这样

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

override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView,
                                 stickerAt index: Int) -> MSSticker {
    stickers[index]
}
于 2020-06-08T11:21:45.843 回答