第 9 章
使用 Prototype Cell、差異性資料源與深色模式自訂表格視圖
I think that's the single best piece of advice: Constantly think about how you could be doing things better and questioning yourself.
- Elon Musk, Tesla Motors
在前一章中,我們建立了一個簡單的表格式 App,採用 Basic 的 Cell 樣式來展示餐廳清單。而在本章中,我們將會自訂表格 Cell,讓它看起來更有質感,同時我會介紹更現代的方式來處理表格視圖的資料源。我們還有許多地方需修改與加強:
- 利用
UITableViewController
替代UITableView
重建相同的App。 - 使用新的
UITableViewDiffableDataSource
設置表格視圖的資料。 - 每間餐廳顯示截然不同的圖片,而不是使用相同的縮圖。
- 設計自訂表格視圖 Cell,以取代使用表格視圖 Cell的 Basic樣式。
- 以深色模式測試 App
你可能想知道為什麼我們得重建相同的 App。完成一件事情的方法並不止一種。先前我們從元件庫中取得UITableView
來建立表格視圖 App 。而在本章我們將使用 UITableViewController
與UITableViewDiffableDataSource
來建立一個表格視圖 App。但這樣做會更容易嗎?是的,這樣的做法會更容易。還記得在前面的範例中,我們需要指定採用 UITableViewDataSource
與 UITableViewDelegate
協定,而 UITableViewController
不但已經採用了它們,而且還幫我們建立了連結關係。除此之外,它也設定了所有需要的佈局約束條件。
UITableViewDiffableDataSource
於 iOS 13 時被導入,以一種更現代的方式來提供表格視圖資料的呈現,你依然可以使用傳統方法,也就是我們於第 8 章所介紹的方式來將資料填入表格中,這個新的方法取代了「UITableViewDataSource」協定,可以讓你更加容易的處理表格視圖中的資料變更。當更多的裝置安裝了 iOS 13(或以上的版本),這個 UITableViewDiffableDataSource
方法將成為 UITableView
的標準實作方法。
從本章開始以及之後的章節內容,你將會開始建立一個真實世界中可使用的 App,稱作「FoodPin」。這將會變得更有趣。
本文摘自《iOS 17 App程式設計實戰心法》(Swift+UIKit)》一書。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從 AppCoda網站 購買完整電子版