code

2017年11月8日 星期三

Stanford ios 10 with Swift 筆記10 - Tableview

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,所以無法按照此教程練習,可惜。



沒有留言:

張貼留言