十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1、ios系統(tǒng)添加表情符號(hào)鍵盤,再輸入一些表情式的字符時(shí)就會(huì)自動(dòng)的顯示出相關(guān)的表情出來,可以添加到文字說說等等里面。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)黃州,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
2、表情鍵盤也是內(nèi)置的一種鍵盤,只需要找到設(shè)置的方法就可以把表情鍵盤添加到鍵盤上面去。打開設(shè)備上面設(shè)置——通用——鍵盤——添加鍵盤——表情符號(hào)。
3、設(shè)置完畢之后,就可以在短信或者是發(fā)表說說、聊天的地方插入表情符號(hào)。
之前走了很多彎路,包括自己定以emoji表情,自己創(chuàng)建view類去處理圖文混排 ,當(dāng)把這些焦頭爛額的東西處理完了才發(fā)現(xiàn) ,其實(shí)系統(tǒng)自帶鍵盤是如此的方便,iOS 系統(tǒng)自帶的表情在view,textfield,UIimageView展示時(shí)已經(jīng)將uicode做過處理,直接展示成圖片的形式,其實(shí)質(zhì)依然是UTF8的 符號(hào),如果你要自己定義圖片,然后添加進(jìn)textField 或者Label里,那你就中大獎(jiǎng)了,圖文混排 需要費(fèi)很大的功夫處理。
首先 ,想要獲取系統(tǒng)的表情,要首先知道表情對(duì)應(yīng)的UTF8 的編碼方式,我將其中一部分的圖片展示出來 ,然后用UIButton 排列,iOS 7后又增加了300多個(gè)表情符號(hào),這些都可以百度查到,現(xiàn)在上代碼:
//將數(shù)字轉(zhuǎn)為
#define EMOJI_CODE_TO_SYMBOL(x) ((((0x808080F0 | (x 0x3F000) 4) | (x 0xFC0) 10) | (x 0x1C0000) 18) | (x 0x3F) 24);
定義的宏將轉(zhuǎn)成UTF8,取出對(duì)應(yīng)的表情符號(hào):
//獲取默認(rèn)表情數(shù)組
- (NSArray *)defaultEmoticons {
NSMutableArray *array = [NSMutableArray new];
for (int i=0x1F600; i=0x1F64F; i++) {
if (i 0x1F641 || i 0x1F644) {
int sym = EMOJI_CODE_TO_SYMBOL(i);
NSString *emoT = [[NSString alloc] initWithBytes:sym length:sizeof(sym)encoding:NSUTF8StringEncoding];
[array addObject:emoT];
}
}
return array;
}
在將對(duì)應(yīng)數(shù)組里的表情依次存放到UIButton里,貼出部分代碼:
//獲取數(shù)組
NSArray *arrEmotion = [self defaultEmoticons];
//將表情放到UIButton里
CGFloat W = 30;
CGFloat H = 30;
CGFloat X;
CGFloat Y;
for (int i = 0; i count; i ++) {
X = 10 +(W+5) * (i%10);
Y = 260 + (i/10)* (H +5);
UIButton *biaoqing =[[UIButton alloc] init];
biaoqing.backgroundColor = [UIColor redColor];
biaoqing.frame = CGRectMake(X, Y, W, H);
[self.view addSubview:biaoqing];
NSString *Str = arrEmotion[i];
[biaoqing setTitle:Str forState:UIControlStateNormal];
biaoqing.tag = i;
[biaoqing addTarget:self action:@selector(biaoqingClick:) forControlEvents:UIControlEventTouchUpInside];
}
這樣就完成了 在你自定義鍵盤里的表情添加 ,同時(shí)設(shè)置該點(diǎn)擊事件將表情符號(hào)添加進(jìn)textField或者Label里:
- (void) biaoqingClick:(UIButton *)biaoqing{
NSArray *emoji = [self defaultEmoticons];
NSString *str = emoji[biaoqing.tag];
self.textField.text = str;
}
基本功能完成 ,效果圖展示:
在后臺(tái)服務(wù)器處理表情方面 ,mysql 5.4之后 就可以自動(dòng)識(shí)別 uicode 的表情編碼,并且經(jīng)驗(yàn)證iOS端的表情符號(hào)在安卓上也可以識(shí)別,如果mysql的版本過低,報(bào)錯(cuò)無法識(shí)別uicode編碼
設(shè)置方法,以搜狗輸入法操作為例:
1、首先打開一個(gè)聊天窗口;如圖所示。
2、接著點(diǎn)擊輸入框,在彈出的頁面點(diǎn)擊表情按鈕;如圖所示。
3、然后在出來的頁面點(diǎn)擊斗圖選項(xiàng);如圖所示。
4、進(jìn)入斗圖頁面,點(diǎn)擊下面的開關(guān)按鈕,打開;如圖所示。
5、打開后,在輸入框輸入文字就有表情出來了;如圖所示。
下個(gè)91助手或者豌豆夾之類的,看看教程就可以了,把手機(jī)調(diào)到調(diào)試一項(xiàng),在設(shè)置-程序管理-開發(fā)里面,連接電腦,雙擊APK文件,然后按照步驟一步步往下做就可以了 1:使用文件瀏覽的軟件直接點(diǎn)開就可以安裝!UCweb就可以瀏覽文件! 2:你如果沒有任何軟件,就通過網(wǎng)絡(luò)下載一個(gè),或者你手機(jī)有個(gè)電子市場(chǎng)(差不多的名字不同機(jī)型不一樣的),在那里也可以搜索然后下載,然后進(jìn)行第一步 3:如果沒有流量,你就在電腦上安裝個(gè) APK安裝器 把手機(jī)插在電腦上,APK安裝器會(huì)搜索電腦上的apk(就是安卓程序的后綴名)文件,剩下的就是小白內(nèi)容了上面都有安裝提示自己來就行了 應(yīng)該夠詳細(xì)了……
之前做過 【OC版本】 和 【swift版本】 圖文混排和表情鍵盤,說實(shí)在的很low,特別是鍵盤,整體只是實(shí)現(xiàn)了效果并沒有封裝,很難集成使用!而且之前是使用的附件做的并不支持gif表情,我嘗試各種方法,想實(shí)現(xiàn)類似qq的絲滑gif表情體驗(yàn),真的不容易;經(jīng)過各種嘗試和努力最終基于 【YYText】 實(shí)現(xiàn)了類似qq的gif表情聊天方案,大量的表情也不會(huì)卡頓!而且這次的鍵盤做了比較全面的封裝集成起來很方便!
單行輸入:
多行輸入:
鍵盤的集成方法:
項(xiàng)目github地址: LiuqsEmoticonkeyboard
2. LiuqsEmotionPageView 鍵盤的分頁類用來放表情按鈕,內(nèi)部主要處理按所在行列位置的計(jì)算,需要給出當(dāng)前是第幾頁,用來加載表情:
3. LiuqsKeyBoardHeader 全局宏定義的類。
4. LiuqsTopBarView 鍵盤上輸入框和一些切換按鈕的實(shí)體類,這個(gè)可以根據(jù)需求自定義:
5. LiuqsButton 鍵盤上的表情按鈕,自定義是為了更好的和圖片一一對(duì)應(yīng),更容易處理。
6. NSAttributedString+LiuqsExtension 富文本的分類:
getPlainString 方法主要是通過遍歷富文本中的附件(在這里是指表情圖片)并使用普通的字符串(比如:[大笑])替換,得到普通的字符串編碼,拿字符串編碼去通訊,比如調(diào)用接口發(fā)消息;
舉個(gè)栗子:
轉(zhuǎn)換過的字符串是這樣滴: 好害羞[害羞]!
用來展示的效果是這樣滴:
7. LiuqsTextAttachment 自定義附件類,繼承于NSTextAttachment。
8. LiuqsDecoder 轉(zhuǎn)碼的核心類:
主要方法:
詳細(xì)說一下內(nèi)部的實(shí)現(xiàn):
首先是靜態(tài)屬性:
到此基本就說完了!YYText有很多強(qiáng)大的功能,大家自己可以隨意擴(kuò)展,在這里只用到了imageView附件。
可能講不夠全面,具體細(xì)節(jié)可以看 項(xiàng)目demo !
寫的比較辛苦,如果對(duì)你有用希望可以支持一下,記得給個(gè)star哦!
有任何意見和建議都可以提出來,我的郵箱: liuquanshui@100tal.com
iOS開發(fā)之自定義表情鍵盤(組件封裝與自動(dòng)布局)
iOS開發(fā)之自定義表情鍵盤(組件封裝與自動(dòng)布局)