每次寫這些文字的時(shí)候都是直接步入正題,感覺太沒有人情味了千劈。牌捷。哈哈暗甥。捉捅。以下是一些使用TableView的基本知識(shí)。更深入的話寄月,后面會(huì)更新的啦。厂抖。
1.繼承自UIScrollView
2.兩種風(fēng)格
3.兩個(gè)Delegate:dataSource和delegate
4.使用NSIndexPath來(lái)定位
5.只顯示一列數(shù)據(jù)克懊,只能縱向滑動(dòng)
6.UITableViewController默認(rèn)的會(huì)在viewWillAppear的時(shí)候忱辅,清空所有選中cell。
設(shè)置self.clearsSelectionOnViewWillAppear = NO谭溉,來(lái)禁用該功能墙懂,
在viewDidAppear中調(diào)用UIScrollView的flashScrollIndicators方法讓滾動(dòng)條閃動(dòng)一次,提示用戶該控件是可以滑動(dòng)的扮念。
7.cell重用機(jī)制
8.selectionStyle屬性:指定cell選中時(shí)的顯示風(fēng)格损搬,
accessoryType:指定cell右邊的顯示的內(nèi)容,
accessoryView:定制右邊顯示的view柜与。(UISwitch)
8.opaque屬性:UIView的透明度屬性场躯,默認(rèn)為半透明
9.要重構(gòu)cell,可以直接將subView的drowRect方法重寫旅挤, 將要加的subview定制在一個(gè)subView里面踢关, 然后加入ContentView當(dāng)中
10.subView最好還是添加到cell的contentView
如何提高tableView的性能
1粘茄、重用cell
我們都知道申請(qǐng)內(nèi)存是需要時(shí)間签舞,特別是在一段時(shí)間內(nèi)頻繁的申請(qǐng)內(nèi)存將會(huì)造成很大的開銷,而且上tebleView中cell大部分情況下布局都是一樣的柒瓣,這個(gè)時(shí)候我們可以通過(guò)回收重用機(jī)制來(lái)提高性能儒搭。重用cell有兩步:
? 我們需要先注冊(cè)這個(gè)cell, registerClass or registerNib ?
? 然后在delegate 的方法里面deque這個(gè)cell ,兩步使用相同的identifier 芙贫。
2搂鲫、避免content的重新布局
盡量避免在重用cell時(shí)候,對(duì)cell的重新布局磺平,一般情況在在創(chuàng)建cell的時(shí)候就將cell布局好魂仍。
prepareForReuse 方法是在deque方法之前調(diào)用的,方法可以重寫一些對(duì)cell的更新布局拣挪,記住一定要[super prepareForReuse]擦酌,也可以在里面實(shí)現(xiàn)通知取消上次對(duì)此cell的網(wǎng)絡(luò)請(qǐng)求,因?yàn)橐呀?jīng)重用啦菠劝,還發(fā)什么網(wǎng)絡(luò)請(qǐng)求尼赊舶,方法里面最好不要包括content相關(guān)的更新.
3、使用不透明的subView
在定制cell的時(shí)候,將要添加的subView設(shè)置成不透明的會(huì)大大減少多個(gè)view層疊加時(shí)渲染所需要的時(shí)間笼平。
4园骆、如果方便,直接重載subView的drawRect方法
如果定制cell的過(guò)程中需要多個(gè)小的元素的話寓调,最好直接對(duì)要顯示的多個(gè)項(xiàng)目進(jìn)行繪制遇伞,而不是采用添加多個(gè)subView。
5捶牢、tableView的delegate的方法如非必要鸠珠,盡量不要實(shí)現(xiàn)
tableView的delegate中的很多函數(shù)提供了對(duì)cell屬性的進(jìn)一步控制,比如每個(gè)cell的高度秋麸,cell是否可以編輯渐排,支持的edit風(fēng)格等,如非必要最好不要實(shí)現(xiàn)這些方法因?yàn)榭焖俚恼{(diào)用這些方法也會(huì)影響性能灸蟆。