通過uikeyboardwillchangeframenotification通知,監聽鍵盤的改變,同時可以得到鍵盤的frame和動畫的持續時間,
新建鍵盤頂部工具條yscompose*******,預設在底部,y值隨著鍵盤的改變而改變,會一直顯示在鍵盤的最上面,動畫持續時間使用步驟一通知得到的時間
新建乙個存放表情的ysemoticonkeyboard(由ysemoticonlistview + ysemoticontabbar)整體view,替換掉原生的鍵盤。其中ysemoticonlistview指的是表情列表,ysemoticontabbar指的是表情型別,如:浪小花、預設表情、qq表情等。
ysemoticonlistview由uiscrollview+uipagecontroller 組成。uiscrollview存放著由ysemoticonpageview裝著很多表情(button)的列表組成。
所有的介面控制操作,都封裝在yscomposeviewcontroller的控制器中里。
1.鍵盤通知
列印一下鍵盤的uikeyboardwillchangeframenotification通知,我們可以得到鍵盤的frame和動畫的持續時間。
, }";鍵盤的frame和動畫的持續時間uikeyboardcenterbeginuserinfokey = "
nspoint: ";
uikeyboardcenterenduserinfokey = "
nspoint: ";
uikeyboardframebeginuserinfokey = "
nsrect: , }";
uikeyboardframeenduserinfokey = "
nsrect: , }";
uikeyboardislocaluserinfokey = 1
;}}
nsdictionary *userinfo =notification.userinfo;2.替換掉原來的鍵盤//動畫的持續時間
double duration =[userinfo[uikeyboardanimationdurationuserinfokey] doublevalue];
//鍵盤的frame
cgrect keyboardf = [userinfo[uikeyboardframeenduserinfokey] cgrectvalue];
self.textview.inputview == nil : 使用的是系統自帶的鍵盤
self.textview.inputview = self.emoticonkeyboard; 指的是用表情view替換掉原來的鍵盤
懶載入乙個view
#pragma mark - 懶載入替換掉原來的鍵盤- (ysemoticonkeyboard *)emoticonkeyboard
return
_emoticonkeyboard;
}
/*1.yscomposeviewcontroller :發微博controller* * 切換鍵盤 */
- (void
)switchkeyboard
else
//開始切換鍵盤
self.switchingkeybaord =yes;
//退出鍵盤
[self.textview endediting:yes];
//結束切換鍵盤
self.switchingkeybaord =no;
dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(
0.1 * nsec_per_sec)), dispatch_get_main_queue(), ^);
}
yscompose*******:鍵盤頂部的工具條
ysemoticonkeyboard:表情鍵盤(整體): ysemoticonlistview + ysemoticontabbar
ysemoticonlistview:表情列表,由ysemoticonpageview + 分頁
ysemonticontabbar:表情底部tabbar,切換不同的表情
2.ysemoticonlistview結構,上面由乙個ysemoticonpageview,載入一頁的列表,有多少頁表情列表,就有多少個pageview。底部是乙個分頁控制項uipagecontrol。
iOS開發鍵盤表情處理
概述 原理 將獲取到的字串包含表情進行utf 8轉碼傳給伺服器,然後將伺服器返回的資料解碼,就可以將表情進行上傳 解析等操作,節省大量時間 應用場景 string字串 stringbyaddingpercentescapesusingencoding nsutf8stringencoding 編碼 ...
vue聊天框傳送表情
1.在傳送訊息的時候,判斷傳送的訊息是不是表情,表情的type 3,content 愛心 這樣儲存在資料庫中 2.在獲取聊天記錄的時候,判斷type 3,處理表情,else if chatitem.type 3 src emojiurl emojimap chatitem.content style...
聊天框richtextfield4 6表情錯位
解決方法1 以flash 版本10 編譯都是沒有問題的 解決方法2 flash 版本11 swf version 13 有問題 估計textfield scroll的時候 行內 y值變化和flash10有區別 com riaidea text spriterenderer.as檔案 private ...