第 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 。而在本章我們將使用 UITableViewControllerUITableViewDiffableDataSource來建立一個表格視圖 App。但這樣做會更容易嗎?是的,這樣的做法會更容易。還記得在前面的範例中,我們需要指定採用 UITableViewDataSourceUITableViewDelegate 協定,而 UITableViewController 不但已經採用了它們,而且還幫我們建立了連結關係。除此之外,它也設定了所有需要的佈局約束條件。

UITableViewDiffableDataSource 於 iOS 13 時被導入,以一種更現代的方式來提供表格視圖資料的呈現,你依然可以使用傳統方法,也就是我們於第 8 章所介紹的方式來將資料填入表格中,這個新的方法取代了「UITableViewDataSource」協定,可以讓你更加容易的處理表格視圖中的資料變更。當更多的裝置安裝了 iOS 13(或以上的版本),這個 UITableViewDiffableDataSource方法將成為 UITableView 的標準實作方法。

從本章開始以及之後的章節內容,你將會開始建立一個真實世界中可使用的 App,稱作「FoodPin」。這將會變得更有趣。


本文摘自《iOS 17 App程式設計實戰心法》(Swift+UIKit)》一書。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從 AppCoda網站 購買完整電子版

results matching ""

    No results matching ""