ios - iMessage 应用程序 - 以编程方式从 .apng 创建动画贴纸

标签 ios objective-c imessage

您好,有没有人尝试过使用动画 apng 文件以编程方式创建自定义贴纸?

我没有成功,但可以声明以下内容:

  1. .apng 文件具有正确的尺寸和文件大小 (300px * 300px) 且 < 500kb。

  2. 可以将其添加为 .png 并显示第一帧(非动画)

  3. 将文件名更改为 .apng 会导致在向 MS Message 中插入贴纸时引发错误。

  4. 已采取将 apng 加载到项目文件夹(而不是在 Assets.xcassets 中)的方法,因为初始化贴纸需要一个 NSURL,如果将 apng 创建为 iOS 贴纸,则该 NSURL 不可用。

  5. 设法在 .GIF 中使用相同的序列。这作为贴纸正确插入。

代码如下:

MSConversation *currentConversation = [self activeConversation];

NSURL *urlForSticker2 = [[NSBundle mainBundle] URLForResource:@"elephant_apng" withExtension:@"apng"];
MSSticker *challengeSticker2 = [[MSSticker alloc] initWithContentsOfFileURL:urlForSticker2 localizedDescription:@"My Sticker Localised" error:&myError];

[currentConversation insertSticker:challengeSticker2 completionHandler:^(NSError * error) 
{

//HERE we get: error    NSError *   domain: @"com.apple.messages.stickers-error" - code: 8  0x0000600000058240


 }];

是的 - 渴望能够克服上面显示的错误。

最佳答案

也许你在添加资源的时候忘了点击这里?

add resource

当您插入 MSSticker 对象时,您的 apng 文件的扩展名应该只是 "png"

关于ios - iMessage 应用程序 - 以编程方式从 .apng 创建动画贴纸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37957174/

相关文章:

ios - Viewcontroller 在实现 rootviewcontroller 后只显示黑屏

ios - 如何在 iOS 中使用 WhatsApp 共享多个图像?

ios - 更改应用程序中解析推送通知的当前 channel

ios - UISegmentedControl 切换 View 它重置

ios - 在 iMessage 应用程序中使用现有数据库 (Swift)

ios - 重新加载 UITableView 会重置 View 的 subview

iphone - 在 iPhone 应用程序中选择整数的控件/方法是什么?

ios - 获取 iPhone X (10) ios 11 的屏幕尺寸(每条扫描线)(以像素为单位)

Swift 4 iMessage 发送消息 : The operation couldn’t be completed.(com.apple.messages.messagesapp-error 错误 9。)

ios - 验证 iMessage 支持、SMS 支持