iOS 6:UITableView循環(huán)利用、UITableViewCell等高/非等高

循環(huán)利用

  • tableView顯示單組數(shù)據(jù)的時候,總是顯示很多的數(shù)據(jù)速挑,當然tableView不可能一次加載這么多的數(shù)據(jù),那樣會浪費很多的內(nèi)存空間副硅。感覺在手機看來姥宝,內(nèi)存的空間,總是比處理器的資源更加珍貴恐疲。這時腊满,就需要用到性能優(yōu)化了。
  • tableView自身會有一個緩存培己,將cell綁定標識符來進行識別碳蛋,并實現(xiàn)內(nèi)存空間的循環(huán)利用。當然一開始緩存中并沒有這樣的cell省咨,所以需要初始創(chuàng)建若干cell肃弟,當此cell不再視野中時,就會被拋棄到緩存中零蓉,然后被賦予另一個數(shù)據(jù)笤受,仍舊是同樣的內(nèi)存空間,并顯示出來敌蜂。
  • 當cell滾動非陈崾蓿快的時候,cell的覆蓋并非是按照順序進行的章喉。
  • dequeueReusableCellWithIdentifier:汗贫,去緩存池中查找可循環(huán)利用的cell,如果沒有的話秸脱,就需要自己去創(chuàng)建了落包。在storyboard設置有identifier的cell,不需要自己創(chuàng)建摊唇,默認的回去storyboard里面找有沒有這個標識符的cell妥色。
  • reigsterClass
//objc
// 注冊某個標識對應的cell類型
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];
  • 幾個常用的方法

    • select
    • deselect
    • willSelect
    • willDeselect
    • heightForRow
    • viewForHeader
    • heightForHeader
  • tableViewDelegate 協(xié)議繼承于 scrollViewDelegate,可以自動繼承了方法scrollViewDidScroll

cell

  • cell的屬性

    • selectionStyle 選中的樣式
    • selectedBackgroundView 選中的背景色視圖
    • backgroundColor / backgroundView 默認的背景色
    • accessoryType / accessoryView 設置指示器
  • 定義等高的cell

    • xib生成cell
      • registerNib
    • storyboard生成cell
    • 代碼生成cell遏片,使用frame來約束嘹害,當父控件的frame發(fā)生改變的時候撮竿,自動調(diào)用layoutSubViews: 來對子控件自動布局
    • 代碼生成cell,使用autoLayout自動布局笔呀,不需要放在layoutSubviews:方法中
    • 技巧:通過設置背景色幢踏,來查看約束是否正確,或者用層級調(diào)試工具degug
  • 定義非等高的cell

    • 當cell的寬度隨著UILable中字數(shù)以及UIImageView的有無许师,來隨時調(diào)整cell的高度
    • heightForRowAtIndexPath: 方法的調(diào)用是在cellForRowAtIndexPath:之前房蝉。等程序確定了所有行的高度之后,才會調(diào)用返回cell的函數(shù)微渠。
    • 在heightForRowAtIndexPath:中調(diào)用cellForRowAtIndexPath:搭幻。返回cell的函數(shù)是拿出顯示出來的cell。當cell還沒有創(chuàng)建的時候逞盆,返回來的是nil檀蹋。
    • 那么cell的高度到底如何來確定呢
    • 使用estimatedHeightForRowAtIndexPath:方法,當程序知道了估計的高度之后云芦,先調(diào)用cellForRowAtIndexPath:俯逾,然后再調(diào)用heightForRowAtIndexPath:。
    • 由于UITableViewController不知道創(chuàng)建cell內(nèi)部的子控件細節(jié)舅逸;在cell的自定義代碼中桌肴,返回height函數(shù),讓外界來調(diào)用琉历。
    • 強制布局 [cell layoutIfNeeded]坠七,這個很重要。一般情況下旗笔,控件的屬性布局在tableView顯示之前的那一刻去計算灼捂,但是要提前獲取這些cell的高度,就需要強制去提醒tableView現(xiàn)在就去計算换团。
  • KVC 鍵值編碼
    • 方法:setValuesForKeysWithDictionary
    • 不是按照順序匹配,是找到與字典的key同屬性名的value宫蛆,并設置
    • number -> bool 根據(jù)類型會有自動轉(zhuǎn)化艘包,有點智能

tips

  • static 修飾局部變量的時候,初始化一次耀盗,內(nèi)存中只有一份想虎。防止一個對象被連續(xù)的創(chuàng)建被銷毀,但是設置成全局變量又有著代碼管理的復雜性弊端叛拷。
  • 定義一條線: separator分割線 將UIView的高度設置成1即可舌厨。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市忿薇,隨后出現(xiàn)的幾起案子裙椭,更是在濱河造成了極大的恐慌躏哩,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揉燃,死亡現(xiàn)場離奇詭異扫尺,居然都是意外死亡,警方通過查閱死者的電腦和手機炊汤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門正驻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抢腐,你說我怎么就攤上這事姑曙。” “怎么了迈倍?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵伤靠,是天一觀的道長。 經(jīng)常有香客問我授瘦,道長醋界,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任提完,我火速辦了婚禮形纺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徒欣。我一直安慰自己逐样,他們只是感情好,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布打肝。 她就那樣靜靜地躺著脂新,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粗梭。 梳的紋絲不亂的頭發(fā)上争便,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機與錄音断医,去河邊找鬼滞乙。 笑死,一個胖子當著我的面吹牛鉴嗤,可吹牛的內(nèi)容都是我干的斩启。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼醉锅,長吁一口氣:“原來是場噩夢啊……” “哼兔簇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤垄琐,失蹤者是張志新(化名)和其女友劉穎边酒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體此虑,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡甚纲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了朦前。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片介杆。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖韭寸,靈堂內(nèi)的尸體忽然破棺而出春哨,到底是詐尸還是另有隱情,我是刑警寧澤恩伺,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布赴背,位于F島的核電站,受9級特大地震影響晶渠,放射性物質(zhì)發(fā)生泄漏凰荚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一褒脯、第九天 我趴在偏房一處隱蔽的房頂上張望便瑟。 院中可真熱鬧,春花似錦番川、人聲如沸到涂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽践啄。三九已至,卻和暖如春沉御,著一層夾襖步出監(jiān)牢的瞬間屿讽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工吠裆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伐谈,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓硫痰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窜护。 傳聞我的和親對象是個殘疾皇子效斑,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容