导出UIImage作为信息应用的贴纸。

问题描述 投票:1回答:1

我想把一个UIImage导出为信息应用的贴纸,但我找不到任何相关文档。

我的项目有 贴纸包扩展 启用,并看到Xcode创建了一个新的 贴纸.xcassets我在这里手动添加的每张图片都会出现在消息应用中作为贴纸使用,但我如何能将图片保存在那里,这样用户就可以从任何图片中创建贴纸?

我所能找到的是与创建贴纸相关的信息,而不需要做任何代码,只是用预定义的图片发布一个应用程序。

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

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

swift imessage ios-stickers mssticker msstickerview
1个回答
0
投票

贴纸是从贴纸资产目录中加载的 .xcstickers.这个目录是一个资源文件夹,也就是说这个目录是放在你的bundle里面的。你的bundle里面的所有文件都是不可写的,它们只有读的权限。我认为你需要做的是。

  • 你必须将用户的自定义图片存储在任何一个沙盒文件夹中(文档,库和临时文件夹)。

  • 从这个文件夹中读取图片并创建 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]
}
© www.soinside.com 2019 - 2024. All rights reserved.