构建轻量级的Table View注意事项[UIKit]
參考文章來(lái)自objcio站點(diǎn)
?
一、使用ChildViewController
?
將Table ViewController作為Child View Controller加入到其它View Controller中。這種話父Controller能夠管理其它View。同一時(shí)候你的TableView Controller也能夠繼續(xù)管理自己的tableview。當(dāng)然你須要通過(guò)一個(gè)delegate來(lái)使父Controller與子Controller進(jìn)行通信
?
二、讓Cell能夠復(fù)用
?
對(duì)于復(fù)雜的Cell或者有事多種model對(duì)象須要同一個(gè)類型的cell表示時(shí),那么我們能夠考慮把cell復(fù)用。
?
三、把TableView的DataSource分解到單獨(dú)的一個(gè)類中
?
UITableView中的DataSource大多都是對(duì)數(shù)組做的一些操作。能夠把數(shù)組操作相關(guān)的代碼移到單獨(dú)的類中。
能夠使用block或者delegate來(lái)設(shè)置一個(gè)cell。
?
補(bǔ)充
?
1、在分離時(shí)注意要把view層和Controller層的實(shí)現(xiàn)細(xì)節(jié)分開(kāi)。delegate肯定清除一個(gè)view應(yīng)該顯示什么狀態(tài),可是它不應(yīng)該了解怎樣改動(dòng)view的結(jié)構(gòu)或者給某些subviews設(shè)置某些屬性以獲得正確地狀態(tài),全部的這些邏輯都應(yīng)該封裝到view的內(nèi)部,然后對(duì)外提供一些簡(jiǎn)單的API
?
2、對(duì)于一個(gè)tableview中有多種類型的cell、datasource,我們就要通過(guò)推斷cell的類型。然后派發(fā)相應(yīng)的方法。這點(diǎn)類似策略模式。
?
3、簡(jiǎn)單來(lái)講,tableviewcontroller應(yīng)該在model層和view層扮演一個(gè)協(xié)調(diào)者和解調(diào)者的決策。controller不應(yīng)該關(guān)心明顯屬于view層和model層的任務(wù)。能夠使用delegate、block、datasource使得tableviewcontroller變得更加小巧。把業(yè)務(wù)邏輯和view的邏輯放到更加合適的地方,controller層里里外外的實(shí)現(xiàn)細(xì)節(jié)都封裝成簡(jiǎn)單的API。
總結(jié)
以上是生活随笔為你收集整理的构建轻量级的Table View注意事项[UIKit]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle 分析函数--Row_Num
- 下一篇: P2894 [USACO08FEB]酒店