Reference: iOS 9 app程式設計實力超進化實戰攻略 Ch8~11 & Edward Chiang@ALPHAcamp
本週學了很常用到的TableView部分,像是facebook、line的APP就有用到,另外還有UIAlertController、自訂動作按鈕。
自己實作了一個PokemonTable來複習學到的功能。
- 課程心得:
- 課前要先預習,上課比較能快速吸收&理解。
- 可以用presudo code的方式,描述程式每一個步驟,再轉成swift
- 實作心得:
- 自己參考課本&老師的範例再重新實作,除了可以複習兩邊各教到的功能外,也會發現其實有些地方,是知其然,不知其所以然,當出現bug & Fix it後,就會更清楚那些地方,缺點是沒人問的時候,debug會消磨你的時間和精神。
- 除了debug,光是找素材也很花時間,還有autolayout的排版。
- 多寫,遇到越多的bug,然後解決它。
主要架構如下:
PokemonTableViewController
下是我們給定的raw data,下週才會學到從網路伺服器去取raw data。
TableViewDataSource
下的numberOfSections
, numberOfRowsinSection
, cellForRowAt
定義了有幾個分類、列和列的內容
TableViewDelegate下有許多功能:
accessoryButtonTappedForRowWith
:按下附件按鈕後的功能,這次實作是加上提醒控制器的功能UIAlertController
editActionForRowAt
:替列新增動作、按鈕,e.x. : share Button, delete Button
以下功能就不貼gif動畫了,時間寶貴啊啊啊
commit:ForRowAt
:可刪除或新增列
canEditRowAt
:可決定哪些列可編輯與否
moveRowAt:to
:可記錄列被更動到哪一個新位置
canMoveRowAt
:可決定哪些列可更動位置
Navigation
:連結到另一個ViewController
程式碼:https://github.com/dan12411/PokemonTable