您的位置:首页 > 移动开发 > IOS开发

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

2010-12-20 20:06 393 查看
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 = [NSString stringWithFormat:@"%C", button.tag];
textView.text = [NSString stringWithFormat:@"%@%@",textView.text,emojiStr];
}

- (void)hideEmojiView{

[emojiView removeFromSuperview];

[emojiCloseButton removeFromSuperview];
}

- (void)showEmojiView{

CGFloat x = (self.view.frame.size.width-300.0f)/2;
CGFloat y = self.view.frame.size.height - 190;

if (emojiView == nil) {

self.emojiView = [[UIView alloc] initWithFrame:CGRectMake(x,y, 300.0f, 140.0f)];
emojiView.backgroundColor = [UIColor lightGrayColor];
emojiView.alpha = 0.8;
emojiView.layer.cornerRadius = 6;
[emojiView.layer setMasksToBounds:YES];

UIScrollView *emojiScrollView = [[UIScrollView alloc] init];
emojiScrollView.frame = CGRectMake(0, 0 ,300.0f, 140.0f);
[emojiView addSubview:emojiScrollView];

int xIndex = 0;
int yIndex = 0;

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

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

int startIndex = emojiRangeArray[j];
int endIndex = emojiRangeArray[j+1];

for (int i = startIndex ; i<= endIndex ; i++ ) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(6 + xIndex*32, 6 + yIndex*32, 32.0f, 32.0f);
[button setTitle:[NSString stringWithFormat:@"%C", i]forState:UIControlStateNormal];
button.tag = i;
[button addTarget:self action:@selector(didSelectAFace:)forControlEvents:UIControlEventTouchUpInside];
[emojiScrollView addSubview:button];

xIndex += 1;
if (xIndex == 9) {
xIndex = 0;
yIndex += 1;
}
}
}

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

//closeButton
self.emojiCloseButton = [UIButton buttonWithType:UIButtonTypeCustom];
emojiCloseButton.frame = CGRectMake(x-10.0f , y-10.0f , 24.0f, 24.0f);
[emojiCloseButton setImage:[UIImage imageNamed:@"dialog_close.png"]forState:UIControlStateNormal];
[emojiCloseButton addTarget:self action:@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.view addSubview:emojiView];
[self.view addSubview:emojiCloseButton];

}

iPhone Emoji Decimal Character Entities

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
























































































































































































































































































































































































































































































转载地址:http://pukupi.com/post/1964/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: