UITabelView 進階(自訂Cell),uitabelviewcell

來源:互聯網
上載者:User

UITabelView 進階(自訂Cell),uitabelviewcell

自訂一個Cell

當我們要顯示複雜資料的時候,例如要做一個扣扣聊天介面,或是新聞列表,系統的行已經不能滿足我們的要求,這個時候我們可以通過自訂這個行,讓他顯示更多複雜結構的樣式。

自訂cell就是建立一個UITabelViewCell的子類,把cell上的控制項建立都封裝在子類中,簡化UIViewController中的代碼然後把子視圖控制項添加到cell的contentView上

cell中的控制項如何顯示model中的資訊

cell中聲明一個model類型的屬性,viewController中擷取到Model對象後賦值給cell的Model屬性

cell中重寫Model的setter方法,把Model對象中的內容重新賦值給各個控制項

M和V不直接進行通訊,C負責M和V之間進行通訊

 

多種類型的CELL混合

開發中常見多種類型的cell混合在一個tableView中使用,通常每種類型的cell有不同的配置樣式

通常我們會在tabelView:cellForRowAtIndexPath:方法中根據不同的Model來決定使用什麼類型的cell

每種類型的cell要定義不同的重用標識符,cell重用的時候會根據重用標識符從重用隊列中取用哪種類型的cell

例如我們定義一個ComposeCel類型的標識符和ReceivedCell類型的標識符

 然後通過判斷並根據不同的標識符從重用隊列中取用不同類型的表格

 

 

cell自適應高度

之前我們使用的cell一直都是同樣的高度,或者某行固定高度,但在實際開發中,經常要讓cell根據Model中文本的長短動態更改高度。

首先擷取文本的高度

計算文本高度是所用的字型要和label顯示時所用的字型一致

label的寬度要和計算時使用的限定寬度一致,這樣才能保證文本顯示在label中時,label高度恰巧夠

tableView:heightForRowAtIndexPath:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.