
一,定義我們要用的cell,代碼如下:
1,顯示表情和text的cell,代碼如下,需要根據nsmutableattributedstring求出bound,然後改變cell上的imageview和textview的寬度的限制值,動态的調整氣泡的大小,具體代碼如下:
2.顯示圖檔的cell,通過block回調把圖檔傳到controller中,用于放大圖檔使用。
3.顯示錄音的cell,點選cell上的button,播放對應的錄音,代碼如下:
二,cell搞定後要實作我們的chatcontroller部分
1.chatcontroller.m中的延展和枚舉代碼如下:
3.把聊天工具欄中傳回的内容顯示在tableview中,代碼如下:
4.根據toolview中回調接口,擷取工具欄中textview的contentsize,通過contentsize來調整toolview的高度限制,代碼如下:
5.從本地擷取圖檔,并顯示在相應的cell上,代碼如下:
6.把nsstring 轉換成nsmutableattributestring,用于顯示表情,代碼如下:
7.根據cell顯示内容來調整cell的高度,代碼如下:
8.根據cell内容和使用者類型,來選擇cell,代碼如下:
9.點選發送的圖檔來放大圖檔代碼如下:
10.根據鍵盤的高度來調整toolview的位置,代碼如下:
三,代碼有點多,不過在關鍵的部分都加有注釋,在圖檔顯示view中通過捏合手勢來調整圖檔的大小,代碼如下:
上面的東西是在本地做的測試,沒有加上xmpp即時通訊協定,以後的部落格會通過伺服器轉發來進行聊天,并且會繼續對微信進行完善,感興趣的小夥伴繼續關注吧。轉載請注明出處。