自定義聊天表情鍵盤(swift版本)

最近公司沒事,自己寫了個(gè)自定義聊天表情鍵盤,功能簡(jiǎn)單,零污染,導(dǎo)入就可以用。右邊是github地址(demo源碼),喜歡的話給個(gè)star,不喜歡可以幫助我修改下(qq.1739002833),謝謝啦~

效果如下:

基本的效果就是表情鍵盤布局,表情數(shù)據(jù)的接入,表情插入輸入框,圖文混排,添加最近常用表情,右下角刪除按鈕刪除輸入框內(nèi)容,右上角發(fā)送按鈕將文本內(nèi)容發(fā)送給服務(wù)器。


基本效果展示
發(fā)送服務(wù)器輸入框文本


最近表情模塊

實(shí)現(xiàn)邏輯和注意點(diǎn):

1.界面布局:

在主控制器的view中添加一個(gè)Textview,然后自定義一個(gè)控制器,將自定義控制器的view作為textview的inputview。在inputview上加了一個(gè)UICollectionView和Toolbar.

2數(shù)據(jù)結(jié)構(gòu):

用的新浪的表情plist。emoticons.plist中存儲(chǔ)了3個(gè)表情數(shù)組(默認(rèn),浪小花,emoji)的id(映射每個(gè)表情數(shù)組文件夾的名字),每個(gè)表情數(shù)組文件夾都有對(duì)應(yīng)一個(gè)plist,存儲(chǔ)著每組表情的屬性。

3幾個(gè)坑和使用:

cell的點(diǎn)擊事件異常,粗心的寫錯(cuò)了UICollectionViewCell的代理點(diǎn)擊方法(在上一篇簡(jiǎn)書詳細(xì)說(shuō)明了)

圖文混排時(shí),設(shè)置附件(圖片)的大小,但是發(fā)現(xiàn)了emoji在圖片后面時(shí),尺寸不對(duì),原因是屬性字符串有默認(rèn)的尺寸。解決方法是手動(dòng)設(shè)置了屬性字符串的尺寸。當(dāng)在主控制器中動(dòng)態(tài)設(shè)置屬性字符串的尺寸(textview的尺寸)時(shí),表情越來(lái)越大,解決方法是在繼承textview和繼承NSTextAttachment的子類中動(dòng)態(tài)設(shè)置

最近模塊的邏輯是,最新一次點(diǎn)擊放在最前面,然后對(duì)后面的表情排序,點(diǎn)擊次數(shù)越多的越靠前

本來(lái)是用loadPackages()加載所有數(shù)據(jù),最后調(diào)試發(fā)現(xiàn)這個(gè)方法沒必要調(diào)用多次,就寫了個(gè)單例,防止多次調(diào)用,浪費(fèi)性能

使用的時(shí)候直接在控制器里設(shè)置iputview就好了,還有一個(gè)發(fā)送文本給服務(wù)器的按鈕,寫發(fā)給服務(wù)器的邏輯就好,獲取文本已經(jīng)寫好了,基本是零污染,直接用就好了。

第一次寫簡(jiǎn)書,多多交流啊~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 2017.02.22 可以練習(xí),每當(dāng)這個(gè)時(shí)候,腦袋就犯困,我這腦袋真是神奇呀,一說(shuō)讓你做事情,你就犯困,你可不要太...
    Carden閱讀 1,490評(píng)論 0 1
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,893評(píng)論 25 709
  • 項(xiàng)目中有時(shí)候會(huì)用到表情鍵盤的使用,下面我就來(lái)寫一下我所知道的簡(jiǎn)單實(shí)現(xiàn). 第一步 ----------> 獲取本...
    0271fb6f797c閱讀 828評(píng)論 0 1
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,725評(píng)論 8 183
  • 朋友對(duì)我說(shuō),她被男友甩了。 我問:“怎么回事?” 她說(shuō),“他嫌棄我不夠優(yōu)秀” “你怎么不優(yōu)秀了?” “要人有人,要...
    昕語(yǔ)心愿閱讀 816評(píng)論 2 1

友情鏈接更多精彩內(nèi)容