#Task:Part.03–新增帳務,點擊Cell展開顯示Picker

介面初步完成後馬上就進入到程式的部分!我首先進行的是“新增帳務”。

這個頁面有兩處我花比較多時間。1.切換支出或收入時下方的類別和方式依據選項而顯示不同的內容。2.日期、方式、類別的輸入方式為點擊Cell後展開Picker提供使用者選擇。

這篇文章就來記錄一下我是怎麼完成上述兩點以及其他欄位,如果有興趣就一起看下去吧!不過搜尋附近地點、發票掃描目前還沒動工😅,之後研究好再更新上來。

透過Segue傳值

由於我在設計Storyboard時,這個頁面的做法有用到ContainerView嵌入TableViewController,所以全部的欄位被拆成兩個Class控制,需要透過Segue傳值做到切換支出或收入時下方顯示不同的內容。

設定Segue識別碼為“moreInfo”以便後續程式利用。

在AddAccountingViewController.swift加入以下程式做傳值的準備。

切換支出、收入

切換功能使用SegmentedControl來製作,所以透過selectedSegmentIndex(0為支出、1為收入)來判斷,原本Cell的文字和點擊後展開的方式和類別Picker都需要顯示相應的資料。切換時把selectedSegmentIndex存入AddAccountingTableViewController的eiType,還要把方式和類別Picker的dataSource指向AddAccountingTableViewController,這樣才能如願以償地顯示正確的資料😂。

加入圖片

圖片的部分使用UIImagePickerController來製作,點選照片圖示的按鈕後會彈出一個動作選單給使用者選擇,透過不同的sourceType由照片庫或者照相機來加入圖片。所在的Class也必須遵從UIImagePickerControllerDelegate和UINavigationController才能得知使用者選取的照片,再將選取的照片設定給按鈕顯示出來。

除此之外,需要在Info.plist加上兩個鍵才能正常使用。

輸入金額

這個TextField的KeyboardType我設定為NumberPad,不過目前還沒有針對輸入的數字做限制判斷,例如第一個數字不能為0,預計之後會更新。另外還有實作點擊畫面其他處就隱藏鍵盤的功能。

選擇日期、方式、類別

日期使用DatePicker來製作,格式設為“yyyy-MM-dd”,顯示日期的Cell預設為當天。方式、類別使用PickerView來製作,顯示方式、類別的Cell預設為陣列的第一筆資料,目前使用假資料操作。這三個Cell點選後都會展開下面一個包含Picker的Cell供使用者選擇,再次點選顯示文字的Cell時會收合包含Picker的Cell。

輸入備註、地點

備註和地點都是TextField,這邊連結@IBAction時Event欄位要選擇DidEndOnExit,如此一來不需額外的程式碼就可以做到按下return隱藏鍵盤的功能。

搜尋附近地點

尚未製作…

發票掃描

尚未製作…

=====

大功告成!目前所有欄位基本上都可以正常輸入,搜尋附近地點、發票掃描應該會放比較後面才研究處理,接下來目標是要設定CoreData讓使用者輸入的資料可以顯示在其他頁面。

如果有什麼建議歡迎留言~有興趣可以取用我的檔案🙆🏻‍♀️

心願記帳Part.03到這邊結束,我會努力的🙇🏻‍♀️🙇🏻‍♀️🙇🏻‍♀️

未完待續,敬請期待…

--

--