在应用程序中使用 EMOJI 绘文字的方法
2016-01-29 12:15
316 查看
转载,原文链接:
http://it.zhaozhao.info/archives/45978
Emoji 绘文字是日本在通讯上被广泛使用的一种交互式情境图片,你可以把它当成是一般的文字符号来使用,就如同一般文字一样,每一个
Emoji 绘文字都有一个属于自己的 unicode 编码,当字符遇到这类的编码时,就会自动转换成对应的 Emoji 绘文字,其实不只是 Emoji 绘文字,所有 iOS 上的文字或是符号都有属于自己的 unicode 编码,你可以参考文末 Emoji 绘文字的 unicode 编码,并实作以下程序代码来显示它们。
以 NSString 的方式显示
你可以参考以下程序代码, 在字符串前加上「\u」跳脱字符,来代表 unicode 编码, 将 unicode 所代表的字符以 NSString 直接显示出来。
或者是使用 unsigned int 型态,将 unicode 编码做数值上的运算。
以 UIImage 的方式显示
Emoji 绘文字的尺寸大小有一定的限制,将 Emoji 绘文字转换成 UIImage 的方式来显示,也可以避开这些限制 。
若要将 Emoji 绘文字转换成 UIImage 的方式来显示 ,必须 透过 iOS SDK 所提供的 QuartzCore Framework 来完成, 所以首先我们必须先以手动的方式替项目新增 QuartzCore .framework,并且引用对应的头文件。
Xcode
4 新增 Framework 的方法一文。
//将取得文字大小后绘至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();
ps:Emoji 绘文字可以从 iOS 的键盘设定上新增「图释」键盘来取得
Emoji 绘文字专用键盘。
以下图片是由
hasseg.org/stuff/ios-emoji
网站所提供的
Emoji 绘文字 unicode 编码,另外,如果日后有新的 Emoji 绘文字出现,可以在网络上使用「iOS emoji unicode」等相关字汇进行搜寻,取得新的 unicode 编码。
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]); }
上述程序代码的部份执行结果 |
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 |
相关文章推荐
- 解决CI调用Ranorex运行web测试失败的问题
- PHP--traits
- 使用css实现并列div高度随动
- IOS 悬浮评论输入框的实现
- final 关键字
- Oracle数据库资源管理
- akka q
- 利用jsPerf优化Web应用的性能
- Unity3D项目之 Survival Shooter 记录
- C#中Abstract和Virtual
- 10016---Redis--简介
- 【NOI2001】食物链
- protobuf语言指南
- UI神器-SOUI
- php面向对象(一),类,类成员,构造方法,析构方法及对象的销毁
- 如何搭建一个独立博客——简明Github Pages与Hexo教程
- C#特性详解
- 【YGOPro编辑器】YGOProDevelop 1.0发布
- Centos下升级Python
- baidu Touch.js 旋转不了