xib製作聊天介面,xib聊天介面

來源:互聯網
上載者:User

xib製作聊天介面,xib聊天介面
仿QQ聊天布局

目前查到的資料大部分都是這樣的效果,而且設計的思路都是一樣的,

一個tableview使用一個自訂的cell,當cell成功建立以後,依靠一個中介類傳遞的資料來判斷到底是左邊還是右邊發送的資料,然後重新繪製內容或者布局。

但是對於習慣xib來說,並不擅長代碼適配和布局,遂根據思路調整

首先介面

然後是自訂的cell

雖然看起來很奇怪 但是根據思路的話這是一種簡單粗暴的方法,這個cell其實是兩邊單獨顯示時的效果合并在一起的,通過資料的中介類可以知道應該需要顯示那邊,然後隱藏另外一邊的資料顯示

    dataSource.blockConfigureCell=^(CellFour* cell,Message* model)    {        cell.CFMessage=model;        switch (cell.CFMessage.MCellSystle)        {            case CellSystleLeft:            {                cell.headimageRight.hidden=YES;                cell.CFbackGroundRight.hidden=YES;                cell.message.text=model.MDictionary[@"message"];            }                break;                case CellSystleRight:            {                cell.headImage.hidden=YES;                cell.CFbackGroundLeft.hidden=YES;                cell.messageRight.text=model.MDictionary[@"message"];            }                break;            default:                break;        }    };

其實這也是很無奈的做法,開始的時候使用的是兩個自訂的cell即左邊和右邊的顯示cell是獨立開的,但是在註冊時就會產生兩個重用的標示,雖然在不進行重用的時候顯示也可以達到以上的效果,但是一旦進入了重用隊列裡面那麼就會只用最新修改的重用標示,最終的結果就是所有的樣式變成一個樣式不分左右。

然後又嘗試了一下,一個自訂的cell裡面含有兩種樣式,雖然解決了重用標示的問題,但是問題就是cell建立的問題,因為這種會在建立就決定了cell是左邊顯示的還是右邊顯示的,但是傳遞cell的中介類告訴cell

應該使用那種樣式的時候cell已經建立完成了(建立之前傳遞資料的話cell為空白就沒意義了)。就達不到動態調整的目的了。

問題暫時紀錄一下,所以兩邊如果想做到不同的顯示效果的話像qq的不同氣泡(xib會比較麻煩代碼反而會簡單一點)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.