iOS应用中增加emoji表情输入功能

来源:互联网 发布:张靓颖冯轲sm 知乎 编辑:程序博客网 时间:2024/06/05 02:48

Emoji的介绍参见wiki,iOS支持的emoji表情列表参见http://pukupi.com/post/1964/,iOS支持的emoji表情的Unicode编码范围为[0xE001,0xE05A]&[0xE101,0xE15A]&[0xE201,0xE253]&[0xE401&0xE44C]&[0xE501,0xE537],Unicode编码转为NSString的方法为[NSStringstringWithFormat:@"%C", i].使用如下代码可以弹出一个可以选择Emoji表情的输入框,

- (void)didSelectAFace:(id)sender{

UIButton*button = (UIButton*)sender;

NSString*emojiStr = [NSStringstringWithFormat:@"%C", button.tag];

textView.text= [NSStringstringWithFormat:@"%@%@",textView.text,emojiStr];

}

- (void)hideEmojiView{

[emojiViewremoveFromSuperview];

[emojiCloseButtonremoveFromSuperview];

}

- (void)showEmojiView{

CGFloatx = (self.view.frame.size.width-300.0f)/2;

CGFloaty =self.view.frame.size.height-190;

if(emojiView==nil) {

self.emojiView= [[UIViewalloc]initWithFrame:CGRectMake(x,y,300.0f,140.0f)];

emojiView.backgroundColor= [UIColorlightGrayColor];

emojiView.alpha=0.8;

emojiView.layer.cornerRadius=6;

[emojiView.layersetMasksToBounds:YES];

UIScrollView*emojiScrollView = [[UIScrollViewalloc]init];

emojiScrollView.frame=CGRectMake(0,0,300.0f,140.0f);

[emojiViewaddSubview:emojiScrollView];

intxIndex =0;

intyIndex =0;

intemojiRangeArray[10] = {0xE001,0xE05A,0xE101,0xE15A,0xE201,0xE253,0xE401,0xE44C,0xE501,0xE537};

for(intj =0; j<10; j+=2) {

intstartIndex = emojiRangeArray[j];

intendIndex = emojiRangeArray[j+1];

for(inti = startIndex ; i<= endIndex ; i++ ) {

UIButton*button = [UIButtonbuttonWithType:UIButtonTypeCustom];

button.frame=CGRectMake(6+ xIndex*32,6+ yIndex*32,32.0f,32.0f);

[buttonsetTitle:[NSStringstringWithFormat:@"%C", i]forState:UIControlStateNormal];

button.tag= i;

[buttonaddTarget:selfaction:@selector(didSelectAFace:)forControlEvents:UIControlEventTouchUpInside];

[emojiScrollViewaddSubview:button];

xIndex +=1;

if(xIndex ==9) {

xIndex =0;

yIndex +=1;

}

}

}

[emojiScrollViewsetContentSize:CGSizeMake(300.0f,12+ (yIndex+1)*32)];

//closeButton

self.emojiCloseButton= [UIButtonbuttonWithType:UIButtonTypeCustom];

emojiCloseButton.frame=CGRectMake(x-10.0f, y-10.0f,24.0f,24.0f);

[emojiCloseButtonsetImage:[UIImageimageNamed:@"dialog_close.png"]forState:UIControlStateNormal];

[emojiCloseButtonaddTarget:selfaction:@selector(hideEmojiView)forControlEvents:UIControlEventTouchUpInside];

}

else{

emojiView.frame=CGRectMake(x,y,300.0f,140.0f);

emojiCloseButton.frame=CGRectMake(x-10.0f, y-10.0f,24.0f,24.0f);

}

[self.viewaddSubview:emojiView];

[self.viewaddSubview:emojiCloseButton];

}

iPhone Emoji Decimal Character Entities

The complete list of iPhone emoji and their respective decimal character entities:

e415&#xe415;e056&#xe056;e057&#xe057;e414&#xe414;e405&#xe405;e106&#xe106;e418&#xe418;e417&#xe417;e40d&#xe40d;e40a&#xe40a;e404&#xe404;e105&#xe105;e409&#xe409;e40e&#xe40e;e402&#xe402;e108&#xe108;e403&#xe403;e058&#xe058;e407&#xe407;e401&#xe401;e40f&#xe40f;e40b&#xe40b;e406&#xe406;e413&#xe413;e411&#xe411;e412&#xe412;e410&#xe410;e107&#xe107;e059&#xe059;e416&#xe416;e408&#xe408;e40c&#xe40c;e11a&#xe11a;e10c&#xe10c;e32c&#xe32c;e32a&#xe32a;e32d&#xe32d;e328&#xe328;e32b&#xe32b;e022&#xe022;e023&#xe023;e327&#xe327;e329&#xe329;e32e&#xe32e;e32f&#xe32f;e335&#xe335;e334&#xe334;e021&#xe021;e337&#xe337;e020&#xe020;e336&#xe336;e13c&#xe13c;e330&#xe330;e331&#xe331;e326&#xe326;e03e&#xe03e;e11d&#xe11d;e05a&#xe05a;e00e&#xe00e;e421&#xe421;e420&#xe420;e00d&#xe00d;e010&#xe010;e011&#xe011;e41e&#xe41e;e012&#xe012;e422&#xe422;e22e&#xe22e;e22f&#xe22f;e231&#xe231;e230&#xe230;e427&#xe427;e41d&#xe41d;e00f&#xe00f;e41f&#xe41f;e14c&#xe14c;e201&#xe201;e115&#xe115;e428&#xe428;e51f&#xe51f;e429&#xe429;e424&#xe424;e423&#xe423;e253&#xe253;e426&#xe426;e111&#xe111;e425&#xe425;e31e&#xe31e;e31f&#xe31f;e31d&#xe31d;e001&#xe001;e002&#xe002;e005&#xe005;e004&#xe004;e51a&#xe51a;e519&#xe519;e518&#xe518;e515&#xe515;e516&#xe516;e517&#xe517;e51b&#xe51b;e152&#xe152;e04e&#xe04e;e51c&#xe51c;e51e&#xe51e;e11c&#xe11c;e536&#xe536;e003&#xe003;e41c&#xe41c;e41b&#xe41b;e419&#xe419;e41a&#xe41a;
e04a&#xe04a;e04b&#xe04b;e049&#xe049;e048&#xe048;e04c&#xe04c;e13d&#xe13d;e443&#xe443;e43e&#xe43e;e04f&#xe04f;e052&#xe052;e053&#xe053;e524&#xe524;e52c&#xe52c;e52a&#xe52a;e531&#xe531;e050&#xe050;e527&#xe527;e051&#xe051;e10b&#xe10b;e52b&#xe52b;e52f&#xe52f;e528&#xe528;e01a&#xe01a;e134&#xe134;e530&#xe530;e529&#xe529;e526&#xe526;e52d&#xe52d;e521&#xe521;e523&#xe523;e52e&#xe52e;e055&#xe055;e525&#xe525;e10a&#xe10a;e109&#xe109;e522&#xe522;e019&#xe019;e054&#xe054;e520&#xe520;e306&#xe306;e030&#xe030;e304&#xe304;e110&#xe110;e032&#xe032;e305&#xe305;e303&#xe303;e118&#xe118;e447&#xe447;e119&#xe119;e307&#xe307;e308&#xe308;e444&#xe444;e441&#xe441;   
e436&#xe436;e437&#xe437;e438&#xe438;e43a&#xe43a;e439&#xe439;e43b&#xe43b;e117&#xe117;e440&#xe440;e442&#xe442;e446&#xe446;e445&#xe445;e11b&#xe11b;e448&#xe448;e033&#xe033;e112&#xe112;e325&#xe325;e312&#xe312;e310&#xe310;e126&#xe126;e127&#xe127;e008&#xe008;e03d&#xe03d;e00c&#xe00c;e12a&#xe12a;e00a&#xe00a;e00b&#xe00b;e009&#xe009;e316&#xe316;e129&#xe129;e141&#xe141;e142&#xe142;e317&#xe317;e128&#xe128;e14b&#xe14b;e211&#xe211;e114&#xe114;e145&#xe145;e144&#xe144;e03f&#xe03f;e313&#xe313;e116&#xe116;e10f&#xe10f;e104&#xe104;e103&#xe103;e101&#xe101;e102&#xe102;e13f&#xe13f;e140&#xe140;e11f&#xe11f;e12f&#xe12f;e031&#xe031;e30e&#xe30e;e311&#xe311;e113&#xe113;e30f&#xe30f;e13b&#xe13b;e42b&#xe42b;e42a&#xe42a;e018&#xe018;e016&#xe016;e015&#xe015;e014&#xe014;e42c&#xe42c;e42d&#xe42d;e017&#xe017;e013&#xe013;e20e&#xe20e;e20c&#xe20c;e20f&#xe20f;e20d&#xe20d;e131&#xe131;e12b&#xe12b;e130&#xe130;e12d&#xe12d;e324&#xe324;e301&#xe301;e148&#xe148;e502&#xe502;e03c&#xe03c;e30a&#xe30a;e042&#xe042;e040&#xe040;e041&#xe041;e12c&#xe12c;e007&#xe007;e31a&#xe31a;e13e&#xe13e;e31b&#xe31b;e006&#xe006;e302&#xe302;e319&#xe319;e321&#xe321;e322&#xe322;e314&#xe314;e503&#xe503;e10e&#xe10e;e318&#xe318;e43c&#xe43c;e11e&#xe11e;e323&#xe323;e31c&#xe31c;e034&#xe034;e035&#xe035;e045&#xe045;e338&#xe338;e047&#xe047;e30c&#xe30c;e044&#xe044;e30b&#xe30b;e043&#xe043;e120&#xe120;e33b&#xe33b;e33f&#xe33f;e341&#xe341;e34c&#xe34c;e344&#xe344;e342&#xe342;e33d&#xe33d;e33e&#xe33e;e340&#xe340;e34d&#xe34d;e339&#xe339;e147&#xe147;e343&#xe343;e33c&#xe33c;e33a&#xe33a;e43f&#xe43f;e34b&#xe34b;e046&#xe046;e345&#xe345;e346&#xe346;e348&#xe348;e347&#xe347;e34a&#xe34a;e349&#xe349;     
e036&#xe036;e157&#xe157;e038&#xe038;e153&#xe153;e155&#xe155;e14d&#xe14d;e156&#xe156;e501&#xe501;e158&#xe158;e43d&#xe43d;e037&#xe037;e504&#xe504;e44a&#xe44a;e146&#xe146;e50a&#xe50a;e505&#xe505;e506&#xe506;e122&#xe122;e508&#xe508;e509&#xe509;e03b&#xe03b;e04d&#xe04d;e449&#xe449;e44b&#xe44b;e51d&#xe51d;e44c&#xe44c;e124&#xe124;e121&#xe121;e433&#xe433;e202&#xe202;e135&#xe135;e01c&#xe01c;e01d&#xe01d;e10d&#xe10d;e136&#xe136;e42e&#xe42e;e01b&#xe01b;e15a&#xe15a;e159&#xe159;e432&#xe432;e430&#xe430;e431&#xe431;e42f&#xe42f;e01e&#xe01e;e039&#xe039;e435&#xe435;e01f&#xe01f;e125&#xe125;e03a&#xe03a;e14e&#xe14e;e252&#xe252;e137&#xe137;e209&#xe209;e154&#xe154;e133&#xe133;e150&#xe150;e320&#xe320;e123&#xe123;e132&#xe132;e143&#xe143;e50b&#xe50b;e514&#xe514;e513&#xe513;e50c&#xe50c;e50d&#xe50d;e511&#xe511;e50f&#xe50f;e512&#xe512;e510&#xe510;e50e&#xe50e;
e21c&#xe21c;e21d&#xe21d;e21e&#xe21e;e21f&#xe21f;e220&#xe220;e221&#xe221;e222&#xe222;e223&#xe223;e224&#xe224;e225&#xe225;e210&#xe210;e232&#xe232;e233&#xe233;e235&#xe235;e234&#xe234;e236&#xe236;e237&#xe237;e238&#xe238;e239&#xe239;e23b&#xe23b;e23a&#xe23a;e23d&#xe23d;e23c&#xe23c;e24d&#xe24d;e212&#xe212;e24c&#xe24c;e213&#xe213;e214&#xe214;e507&#xe507;e203&#xe203;e20b&#xe20b;e22a&#xe22a;e22b&#xe22b;e226&#xe226;e227&#xe227;e22c&#xe22c;e22d&#xe22d;e215&#xe215;e216&#xe216;e217&#xe217;e218&#xe218;e228&#xe228;e151&#xe151;e138&#xe138;e139&#xe139;e13a&#xe13a;e208&#xe208;e14f&#xe14f;e20a&#xe20a;e434&#xe434;e309&#xe309;e315&#xe315;e30d&#xe30d;e207&#xe207;e229&#xe229;e206&#xe206;e205&#xe205;e204&#xe204;e12e&#xe12e;e250&#xe250;e251&#xe251;e14a&#xe14a;e149&#xe149;e23f&#xe23f;e240&#xe240;e241&#xe241;e242&#xe242;e243&#xe243;e244&#xe244;e245&#xe245;e246&#xe246;e247&#xe247;e248&#xe248;e249&#xe249;e24a&#xe24a;e24b&#xe24b;e23e&#xe23e;e532&#xe532;e533&#xe533;e534&#xe534;e535&#xe535;e21a&#xe21a;e219&#xe219;e21b&#xe21b;e02f&#xe02f;e024&#xe024;e025&#xe025;e026&#xe026;e027&#xe027;e028&#xe028;e029&#xe029;e02a&#xe02a;e02b&#xe02b;e02c&#xe02c;e02d&#xe02d;e02e&#xe02e;e332&#xe332;e333&#xe333;e24e&#xe24e;e24f&#xe24f;e537&#xe537;    

转载地址:http://daimajishu.iteye.com/blog/1089496

0 0