iOS開發UI篇 -- UITableView

本文意在介紹UITableView的使用技巧,持續更新。。。


一、先來個小總結:

目前能力 -- UITableViewController如何寫。。。
1、添加一個存放數據的datas的集合(重寫get方法,使用懶加載)
2、實現普通的方式(將數據轉成模型),實現各種代理方法,展現出數據來

3、創建cell

a.使用原來cell;

    提供創建cell的類方法,
    同時提供一個item模型屬性,
    重寫setItem方法,在set方法中設置數據

b.自定義cell,控件固定使用xib(比如團購cell)使用xib創建cell

    如果使用xib,需要注意xib父類和ID,需要連線提供控件屬性

c.自定義cell,控件不固定(比如微博)

第一步  新建cell,重寫initWithStyle:reuseIdentifier:

第二步  創建Status 和 StatusFrame 模型

     Status中的屬性和cell中的控件相對應

     StatusFrame中裝各個控件的 frame 和 cellHeight

第三步  重寫setStatus 和 setStatusFrame  方法

     重寫setStatus,計算各控件  frame  和  cellHeight

     重寫setStatusFrame方法,settingData 和 settingFrame

第四步  獲取Status數據,寫數據源和代理方法

ps:cell初始化的時候,初始化所有子控件

        對於不一定顯示的控件,我們在settingData的時候根據Status中有無此數據來設置該控件是否顯示

        將其餘步驟都完成之後,在計算frame這一步我們可以一個個來計算,減少出錯率!

        獲取到Status數據時,我們可以先NSLog看一看,在轉模型,裝到Frame中

        整個WBTableViewController相當於:我們將33個雙色球放到了大箱子中,用到第一個就取出第一個,用到第二個就取第二個。提高了性能,手機界面不會出現卡頓現象



好吧,初學者能力至此。。望各位大神補充。。。


二、CC上的一個問答:

怎樣把TableView做得像微信朋友圈、QQ動態那樣流暢?

本人在做企業應用,裏面有同事圈(類似微信朋友圈),每一個Cell包含不同長度的文字和不同數量的圖片,我的做法是在創建Cell的時候把所有子View移除,再創建新的,然後添加文字並異步加載圖片,在獲取Cell高度的代理函數裏面先根據indexPath獲取Cell,然後再計算返回Cell.frame.size.height。基本功能也算實現了,就是滑動起來卡,在iPhone4S上還略有抖動。有沒有大神會把TableView優化到不卡,求思路?


看看各位神友的答案!
如果你想要如絲般順滑的效果,那麼:
1、每次都看一下有沒有能重用的 cell,而不是永遠重新新建(這個是 UITableView 的常識)
2、圖片載入放到後臺進程去進行,滾出可視範圍的載入進程要 cancel 掉
3、圓角、陰影之類的全部 bitmap 化,或者放到後臺 draw 好了再拿來用
4、Cell 裏要用的數據提前緩存好,不要現用現去讀文件
5、數據量太大來不及一次讀完的做一個 load more cell 出來,儘量避免邊滾邊讀數據,這樣就算是雙核的 CPU 也難保不會抽
6、heightForRowAtIndexPath這個方法會計算出你所有cell的高度,所以最好不要做太複雜的算法。

Demo在這: --   》》》  https://github.com/johnil/VVeboTableViewDemo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章