最近重構(gòu)了公司的 app 的一個 ViewController,有一些想法特意來此記錄一下。(場景是公司本來有一個視頻播放界面,現(xiàn)在產(chǎn)品經(jīng)理想要加入一個功能就是可以左右切換到不同的視頻。)
這個想法的一句話總結(jié)就是,想想如果你的每一個 ViewController 的 View 都是 UITableView 的話,你要怎么構(gòu)建你的 UI 和業(yè)務(wù)邏輯?
之所以是 UITableView 是因?yàn)樗鼤?cell 進(jìn)行復(fù)用,一旦復(fù)用,就要解決一個問題,就是如何管理狀態(tài),在 view 銷毀的時候保存所有應(yīng)有的狀態(tài),并且在 view 重用的時候恢復(fù)之前保存的狀態(tài),根據(jù)這些狀態(tài)對 view 重新進(jìn)行配置,使其完全等同于保存狀態(tài)之前的樣子?
雖然說我們開發(fā)的時候不一定要強(qiáng)制把所有 ViewController 的 View 用 UITableView 來代替。但是這種思路是很好的,如果它是 tableView 那你要怎么組織你的代碼?
備注: 這里的 UITableView 對于 Android 就是 RecyclerView