我正在寻找一种创建自定义键盘以添加自定义表情符号和贴纸的方法。
到目前为止,我已经知道表情符号只是Unicode字符,为了添加自定义表情符号,应该提供一种自定义字体,并将专用表情符号映射到字体内的预定义Unicode字符。该字体应可在应用程序的所有用户中使用,以使自定义表情符号正确显示。

当涉及到贴纸(例如可以在Facebook评论中添加的大图像)时,就会出现问题。我找不到有关它们如何工作以及将它们嵌入自定义键盘并进一步粘贴到文本的界面的有用信息。 Google Play和AppStore上有可用的应用程序(例如“Go Keyboard”应用程序)
谁能指出我正确的方向?

所以问题是:

如何将贴纸嵌入文本中以进一步与第三方应用共享?我的主要想法是了解贴纸是否有通用的标准或API(例如表情符号)?还是使用贴纸的唯一方法是与后端服务器一起使用/构建自定义聊天API,这意味着只有使用相同服务的应用才能可靠地解码共享文本以正确显示贴纸?

最佳答案

我一直在一个iOS项目中进行工作,以证明在聊天对话中使用表情符号和贴纸的概念。

您可以在我的GitHub repository中签出,并根据需要提供(欢迎进行审查和改进)。

我要做的是,使用NSTextAttachment对象类型将UITextView附加到NSAttributedString中的图像。

要将图像显示为表情符号,请在UITextView中:

// initialize object with the content of textView
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithAttributedString:textview.attributedText];

// initialize selected image to be used as emoji
NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed:@"MicheyMouse"];
textAttachment.image = [UIImage imageWithCGImage:textAttachment.image.CGImage scale:25 orientation:UIImageOrientationUp];

NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment];
[attributeString appendAttributedString:attrStringWithImage];

// blank space after the image
NSAttributedString *blank = [[NSAttributedString alloc] initWithString:@" "];
[attributeString appendAttributedString:blank];

textview.attributedText = attributeString;

如果您想将图像用作贴纸,请遵循以下几行:

NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed:sticker];
textAttachment.image = [UIImage imageWithCGImage:textAttachment.image.CGImage scale:12 orientation:UIImageOrientationUp]; // --> change de scale, to change image size (or create the image in size that you want)

NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment];

cell.textLabel.attributedText = attrStringWithImage

在此示例中,我将图像作为贴纸直接附加在一个单元格中(您可以将该单元格作为聊天气球来完成)。

换句话说,在第一行代码中,我基本上在UITextView中显示图像,而在第二行中,我将图像直接放在聊天行中。

我必须自己做贴纸/表情符号键盘,还做了一些工作来处理表情符号键盘和打字键盘之间的切换。

这是项目示例的GitHub存储库:https://github.com/cairano/CIStickerFacilities

关于android - Android/iOS键盘:贴纸API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36167234/

10-09 19:42