在應用程序中使用 EMOJI 繪文字的方法

轉載,原文鏈接:

http://it.zhaozhao.info/archives/45978



Emoji 繪文字是日本在通訊上被廣泛使用的一種交互式情境圖片,你可以把它當成是一般的文字符號來使用,就如同一般文字一樣,每一個 Emoji 繪文字都有一個屬於自己的 unicode 編碼,當字符遇到這類的編碼時,就會自動轉換成對應的 Emoji 繪文字,其實不只是 Emoji 繪文字,所有 iOS 上的文字或是符號都有屬於自己的 unicode 編碼,你可以參考文末 Emoji 繪文字的 unicode 編碼,並實作以下程序代碼來顯示它們。

以 NSString 的方式顯示

你可以參考以下程序代碼, 在字符串前加上「\u」跳脫字符,來代表 unicode 編碼, 將 unicode 所代表的字符以 NSString 直接顯示出來。
NSString *str = @"\uE001"

或者是使用 unsigned int 型態,將 unicode 編碼做數值上的運算。
unsigned int stringCode = 0xE001;

for (int i=0; i<= 50; i++) { 
    NSLog(@"%@",[NSString stringWithFormat:@"%C : %X",stringCode + i, stringCode + i]); 
}

上述程序代碼的部份執行結果

以 UIImage 的方式顯示

Emoji 繪文字的尺寸大小有一定的限制,將 Emoji 繪文字轉換成 UIImage 的方式來顯示,也可以避開這些限制 。

若要將  Emoji 繪文字轉換成  UIImage 的方式來顯示 ,必須 透過 iOS SDK 所提供的 QuartzCore Framework 來完成, 所以首先我們必須先以手動的方式替項目新增  QuartzCore .framework,並且引用對應的頭文件。 

手動替項目增加 QuartzCore.framework


#import <QuartzCore/QuartzCore.h> 對於新增 Framework 有問題的讀者們,請參考 
Xcode 4 新增 Framework 的方法一文。


//製作一個繪文字的UILabel
UILabel *label = [[UILabel alloc] init];
NSString *unicode = @"\uE408\uE415\uE001\uE002\uE411";
[label setText:unicode];
[label setBackgroundColor:[UIColor clearColor]];
[label setOpaque:NO];

//將取得文字大小後繪至ImageContext
CGSize textSize = [unicode sizeWithFont:label.font];
label.frame = CGRectMake(0, 0, textSize.width, textSize.height);

UIGraphicsBeginImageContextWithOptions(label.bounds.size, NO, 0.0);
[label.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

[imageView setImage:img];

ps:Emoji 繪文字可以從 iOS 的鍵盤設定上新增「圖釋」鍵盤來取得 Emoji 繪文字專用鍵盤。

以下圖片是由
hasseg.org/stuff/ios-emoji  網站所提供的 Emoji 繪文字 unicode 編碼,另外,如果日後有新的 Emoji 繪文字出現,可以在網絡上使用「iOS emoji unicode」等相關字彙進行搜尋,取得新的 unicode 編碼。 

Emoji 繪文字 unicode 編碼 E001 至 E05A

Emoji 繪文字 unicode 編碼 E101 至 E15A

Emoji 繪文字 unicode 編碼 E201 至 E253

Emoji 繪文字 unicode 編碼 E401 至 E44C

Emoji 繪文字 unicode 編碼 E501 至 E537

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章