私は同じことをしようと多くの時間を費やしてきました。あなたの最善の策は、例えばNSStringの絵文字のユニコード値を置き換えることです。 \ u100などにプレースホルダ文字列を入力します。絵文字のエンコードをHTMLタグで置き換え、UIWenViewsまたはDTCoreTextのいずれかを使用してイメージをインラインで描画できます。 は、私はそれがあまりにも動作しますが、これを行っているが、それは少し遅くなります。ここ
が少しスターターである(あなたがテーブルビューでこのラベルを表示したい場合は特別に。):
がUIImagesで辞書を作りますキーなどのオブジェクトとプレースホルダ文字列として:
self.emoticonDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"happyEmoticon.png", @":)",
@"sadEmoticon.png", @":(",
@"testImg.png", @"\uE100",
nil];
__block NSString *text1 = [NSString stringWithFormat:@"<html><p>%@</p></html>",text];
[self.emoticonDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
text1 = [text1 stringByReplacingOccurrencesOfString:key withString:[NSString stringWithFormat:@"<img height= 15 width= 15 src=\"%@\">",obj]];
}];
あなたはこの点荷重でこののUIWebViewにHTMLとは、あなたが欲しいものを持っているだろうことができます。
[myWebView loadData:_htmlData MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];//do create the webview first
遅いUIWebViewの速度が問題になる場合は、先に読むことができます。どちらの場合も、この答えの最後に向かってメモを見てください。 DTAttributedLabelを作成するには
、我々は次のようにします。 まず、DTHTMLAttributedStringBuilderを使用してNSattributedStringを構築:
NSAttributedString *temp = [[[DTHTMLAttributedStringBuilder alloc] initWithHTML:text1
options:@{
DTDefaultFontFamily: @"Helvetica",
DTDefaultFontSize:@15,};
documentAttributes:nil]
generatedAttributedString];
その後、あなたは一時を表示するためにDTAttributedLabelインスタンスを使用することができます。
self.tempLabel.attributedString = temp;//create a DTAttributedLabel Instance called tempLabel before this, I had it as a property
カスタム顔文字をサポートしながら、私の目的は、テキストラベルの本当に速い(テーブルビュー)を生成することでした。 DTAttributedLabelsは高速です(UIWebViewよりもはるかに高速です) 注:私はemojisのユニコード値をカスタムグリフにマップしたカスタムフォントを作成しました。驚いたことに、デフォルトの絵文字が表示されました。ここでは、iOS(CoreText)が値がEmojiセクションにある文字を見つけるたびに、デフォルトでAppleColorEmojiフォントを使用して描画していると主張したいと思います。Apple Color Emojiフォントが実際にiOS上に描かれているかどうかのドキュメントがないため、実際にはこれを証明することが難しくなりますが、これはもっともらしい説明です。 文字パレットアプリからの絵文字をtextEditのファイルにドロップしてからそれを選択し、フォントを変更しようとすると、それが起こらないことがわかります。 同様に、テキストを入力してそれを選択し、そのフォントをApple Color Emojiに変更しようとすると、それは起こらないことがわかります。 Apple Color Emojiフォントを逆コンパイルすると、文字の文字(0〜9を除く)の文字マッピングやグリフが見つかりませんでした。どういうわけか、ラベルのフォントをApple Color Emojiとして設定しても、ラベルのテキストのテキスト(非絵文字)部分のフォントは別のものに設定されます。
Apple Color Emojiフォントの周りのこの領域は依然として非常に不明確なので、お気軽にコメントして共有してください。
これはあなたに役立つことがあります - http://stackoverflow.com/questions/1225514/making-an-emoji-enabeling-app – Sagar