iOS開發之微信聊天頁面實現

青玉伏案發表於2015-12-19

  在上篇部落格iOS開發之微信聊天工具欄的封裝中對微信聊天頁面下方的工具欄進行了封裝,本篇部落格中就使用之前封裝的工具欄來進行聊天頁面的編寫。在聊天頁面中主要用到了TableView的知識,還有如何在倆天中顯示我們傳送的表情,具體請參考之前的部落格:IOS開發之顯示微博表情,在這兒就不做贅述啦。在聊天頁面用到了三對,六種Cell,不過cell的複雜度要比之前的新浪微博(IOS開發之新浪圍脖)簡單的多。廢話少說吧,還是先來幾張效果圖,在給出實現程式碼吧。

聊天介面的效果圖如下:在下面的聊天介面中中用到了3類cell,一類是顯示文字和表情的,一類是顯示錄音的,一類是顯示圖片的。當點選圖片時會跳轉到另一個Controller中來進行圖片顯示,在圖片顯示頁面中新增了一個捏合的手勢(關於手勢,請參考:iOS開發之手勢識別)。點選播放按鈕,會播放錄製的音訊,cell的大學會根據內容的多少來調整,而cell中textView的高度是通過約束來設定的。

  一,定義我們要用的cell,程式碼如下:

1,顯示錶情和text的cell,程式碼如下,需要根據NSMutableAttributedString求出bound,然後改變cell上的ImageView和TextView的寬度的約束值,動態的調整氣泡的大小,具體程式碼如下:

 

2.顯示圖片的cell,通過block回撥把圖片傳到Controller中,用於放大圖片使用。

 

3.顯示錄音的cell,點選cell上的button,播放對應的錄音,程式碼如下:

 

 

  二,cell搞定後要實現我們的ChatController部分 

1.ChatController.m中的延展和列舉程式碼如下:

 

2.實現工具欄中的回撥的程式碼如下,通過Block,工具欄和ViewController互動,具體ToolView的Block實現,請參考上一篇部落格(iOS開發之微信聊天工具欄的封裝),聊天工具欄使用程式碼如下:

 

3.把聊天工具欄中返回的內容顯示在tableView中,程式碼如下:

 

4.根據ToolView中回撥介面,獲取工具欄中textView的ContentSize,通過ContentSize來調整ToolView的高度約束,程式碼如下:

 

5.從本地獲取圖片,並顯示在相應的Cell上,程式碼如下:

 

6.把NSString 轉換成NSMutableAttributeString,用於顯示錶情,程式碼如下:

 

7.根據Cell顯示內容來調整Cell的高度,程式碼如下:

 

8.根據cell內容和使用者型別,來選擇Cell,程式碼如下:

 

9.點選傳送的圖片來放大圖片程式碼如下:

 

10.根據鍵盤的高度來調整ToolView的位置,程式碼如下:

 

  三,程式碼有點多,不過在關鍵的部分都加有註釋,在圖片顯示View中通過捏合手勢來調整圖片的大小,程式碼如下:

 

上面的東西是在本地做的測試,沒有加上XMPP即時通訊協議,以後的部落格會通過伺服器轉發來進行聊天,並且會繼續對微信進行完善,感興趣的小夥伴繼續關注吧。轉載請註明出處。

Demo地址:https://github.com/lizelu/WeChat

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

iOS開發之微信聊天頁面實現

相關文章