Plain style
先來看名詞定義:Group Style
UITableViewController
是一個封裝好方便使用的table view MVC架構,通常都是用這個來製作全螢幕 (建議)tableview畫面。這個class會主動把datasource和delegate設定成自己。在storyboard中,因為tableviewcontroller和row都疊在一起,可以用 ctrl-shift 點擊在storyboard上來選擇你要哪一個圖層:
static content vs dynamic content
tableview row可以是static,這樣所有的UI畫面都可以在storyboard中編輯,而且所有的row內的 UI components也可以直接拉出outlet到source code中。dynamic content則是使用了datasource delegate來populate model data,然後使用tableview delegate來handle所有更新以及互動。
Custom table cell
藉由繼承UITableViewCell class,我們可以在此class中設立outlets連結到我們自己設計的custom cell裡面的UI components,這大概是唯一會在non-viewcontroller class中設定 outlet的class。Reusable Cells
只有畫在螢幕上的cell才會被created,否則就會被reuse (如果cell type吻合的話),delegate method會提供設定reused cell新的data的途徑:上面implementation中,如果dequeue出來的cell的確含有 "MyCell" type的話,就會被reuse,否則就會建立一個新的MyCell type的cell。
dequeue出來的cell是generic UITableViewCell,所以只能設定非custom attributes / api。
如果是要用custom cell,那dequeue出來的cell就需要 as? 轉型。
注意:ios11因為移除了built-in social framework support,所以無法按照此教程練習,可惜。
沒有留言:
張貼留言