Экспорт UIImage как стикера для приложения Сообщения

Я пытаюсь экспортировать UIImage как стикер для приложения "Сообщения", но не могу найти никакой документации по этому поводу.

У меня есть проект с включенным расширением Sticker Pack, и я вижу, что Xcode создал новый Stickers.xcassets, каждое изображение, которое я добавляю туда вручную, появляется в приложении "Сообщения" для использования в качестве стикера, но как я могу сохранить изображение там программно, так что пользователь может создавать стикеры из любого изображения?

Все, что я могу найти, это информация, связанная с созданием стикеров без написания кода, просто отправка приложения с предопределенными изображениями.

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

Я знаю, как создать MSSticker из файла изображения, но после этого я не знаю, как продолжить и сделать так, чтобы эта вновь созданная наклейка появилась в приложении "Сообщения".

1 ответ

Стикеры загружаются из каталога активов стикеров .xcstickers. Этот каталог представляет собой файл / папку ресурсов, что означает, что он находится внутри вашего пакета. Все файлы внутри вашего пакета недоступны для записи, и у них есть только права на чтение. ИМО, что вам нужно сделать, это:

  • Вы должны хранить пользовательские изображения в любой из изолированных папок (Documents, Library и temp).

  • Прочтите изображение из этой папки и создайте 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]
}
Другие вопросы по тегам