2020-11-01から1ヶ月間の記事一覧

こづかい帳を作るー043

計算したいこともあるので、 計算機を作ってみよう。 まずは計算機用タブを追加

こづかい帳を作るー042

よく見たら、余白が大きくなってしまっていたため、 ListRowInsetsの指定をbuttonに変更。 元に戻った。

こづかい帳を作るー041

連日同じような支出がある場合用に、 明細の各行をタップすると、 その内容が入力欄に表示されるようにする。 1行目をタップするとその内容が反映された。 これは非常に便利。

こづかい帳を作るー040

支出・入金の集計を表示する。 onAppearでデータを集計し、その内容を表示する。 できた。

こづかい帳を作るー039

集計内容を表示するタブを追加する。 ContentViewにタブ用のViewを追加し、 対応するViewを作成する。(アイコンも変更) 簡単に切り替え画面切り替えができるようになった。

こづかい帳を作るー038

別画面に集計を表示したいのでタブを利用する。 今までのContentViewの名称を変え、 ContentViewを新たに作成し、 そこに名称を変えたViewを表示する。 画面の下部にタブが表示された。

こづかい帳を作るー037

リストの表示を微調整する。 ダサいやり方でヘッダと明細の各項目の幅を定義した。 一応それなりに表示されたが余白が気になったので、 ヘッダ・明細どちらにもListRowInsetsを追加し余白を削除 少し表示領域が広くなった。

こづかい帳を作るー036

画面全体の定義が終わったら、 選択ボタンに.sheetを追加し、categoryを参照として渡す。 選択ボタンで選択画面が表示され、 選択した内容が表示された。

こづかい帳を作るー035

次に選択画面全体を作成する。 受け渡しのための変数categoryを用意 onAppearで過去データからcategoryの内容を取得し、 その内容をListで表示 categoryの内容を取得時にSetを使うことで重複が排除される。

こづかい帳を作るー034

次に選択画面を作るが、 まずは選択に表示するリストの各行用のViewを作成する。 渡されたtext(category)をボタンとして表示し、 ボタンが押された時には、渡されたtextに押したボタンのテキストを格納して、 presentationMode.wrappedValue.dismiss()で画面…

こづかい帳を作るー033

分類は同じものを入力することが多いので、 過去に入力したものを選択できるようにしよう。 選択画面を出すボタンを配置する。 入金・支出の区分をメモの行に移動させ、そこに選択ボタンを配置 選択画面の表示を判定する変数isCategoryViewを定義しておき、 …

こづかい帳を作るー032

残金を確認するためのこづかい帳でもあるので、 残高を表示しよう。 残高保持用変数を追加 Hstackを使用し、登録ボタンの左に残高を表記(行94〜97)。 onAppearで残高を計算(行144)。 入金の合計から支出の合計を減算する。 表示された。

こづかい帳を作るー031

日付の表示が幅を取りすぎるので年月のみの表示に変更(行123)。 (substringがなく!)文字列の切り出しが難しかったのでsuffixで対応。 すっきりした。といってもレイアウトの整備はやらないと。

こづかい帳を作るー030

区分を登録する。 登録用の項目を追加 データ登録時の処理を追加(行103〜105) 一覧の見出しと明細にそれぞれ項目を追加 シミュレーターのアプリを削除後実行し、 支出・入金どちらも登録できることを確認。

こづかい帳を作るー029

支出と入金の区分を追加する。 表示に関する変数を定義して HStackを使って分類の入力欄の右側に支出・入金のボタンを配置 選択した方の色が青くなる

こづかい帳を作るー035

次は選択画面全体を作る。 onAppearで過去の登録データのcategoryの値の一覧を取得して配列に格納。 (Setを使うことで重複を排除できる) 配列の各行をCategoryRowとして表示する。

こづかい帳を作るー028

監視しているContentViewのselectedDateをrkManagerに引数で渡して RKManagerからRKViewControllerを経てRKMonthへ渡るようにし、 RKMonthのdateTappedでその値を変更するようRKCalendarを改造すれば、 微妙な処理がなくても意図通り動作することは確認でき…

こづかい帳を作るー027

日付の表示は結果的にisCalendarの値が変更された時に 更新されるようになっているので、 isCalendarを変更する処理を入れてみる。 これで動作はするようになったが、 なんか違う感が・・・ rkManagerのselectedDateが監視できればこれも必要ないのだが。

こづかい帳を作るー026

日付を明日とか前の日とかに変更する場合にカレンダーを 表示せずにさっとやるため、 日付を挟むように前日・翌日のボタンを配置 ボタンは表示されたが日付が変わらない。

こづかい帳を作るー025

日付もデータとして登録できるようにする。 日付の項目を追加(行110) データ登録時(行52)、リストの見出し(行66)、リストの明細(行73)にも項目を追加 データ登録用のクラスの内容を変更したので、 シミュレーターのアプリを一度削除して再実行。

こづかい帳を作るー024

いろいろと調べて見たがよくわからない。 ただ、rkManagerのmodeを4(0〜3以外)にして isCalendarのtrue,falseの分岐を追加すると動作はする。 うーんという感じ。他にやりようがないのか。 ただ、調べてもわからないので当面はこのままで行ってみる。

こづかい帳を作るー023

カレンダーから日付を選択しても表示される日付が変わらない。 RKCalendarの日付を表示するように変更(行31) これで実行するとrkMangerのselectedDateがnilのためエラーとなる。 initに初期化処理を追加(行21) これでエラーは解消だが、表示日付の変わらない…

こづかい帳を作るー022

initの存在を知った。 初期処理はここでいいと。 DateFormatterの初期化はonAppearからここへ持ってくる。 また、日付変更のボタンをやめて日付表記自体をボタンにすることですっきりさせる。

こづかい帳を作るー021

日付の表示が必要。 日付変更ボタンの下に選択日を表示する内容を追加(行31) 日付を文字列に変換するためにDateFormatterを定義(行18) DateFormatterの設定を起動時に実施(行73〜75) ここでやるのでいいのだろうか? 初期表示で現在日付が表示された。

こづかい帳を作るー020

RKCalendarを使って日付の入力欄を作成する。 データ登録用の項目を追加(行13) カレンダー表示判定用変数を追加(行17) RKCalendar用の変数を追加(行19,20) カレンダー表示用のボタンを追加(行24〜29) 実行すると日付選択のボタンが表示され、 そのボタンを押…

こづかい帳を作るー019

当たり前だけど日も登録する必要が。 RKCalenderというのが便利そうなのでこれを導入する。 https://github.com/RaffiKian/RKCalendar で CodeからDownload ZIPを選択してダウンロード ZIP内にあるファイルを以下のように配置

こづかい帳を作るー018

追加した分類用の項目に関連する修正が必要なので、 それらを行う。 まずデータ登録用のクラスに項目を追加(行78) 表示する一覧の見出し(行39)と明細行(行45)への表示を追加 分類とメモの位置は入れ替えた。 データ登録の処理にも分類の項目を追加(行30) 実…

こづかい帳を作るー017

金額の分類をしたいので、 分類用の項目を追加する。 流石にこの辺は慣れてきた。 入力用の変数(category)を宣言し、入力欄と紐付け(18行目) 項目が追加された。

こづかい帳を作るー016

datalistへの設定処理を簡略化しよう。 realm からのデータの取得の場合戻り値はSetで返ってくる。 datalistは配列なので変換ができればいい。 まずはonAppearの処理を変更 問題なく表示されたので、 deleteにも適用 1行で済むので関数化不要になった。

こづかい帳を作るー015

当たり前と言えば当たり前だが、 Realmからデータは消しているが datalistからは消していなかったということ delete内にdatalistの初期化→再設定の処理を追加 deleteで 今度は消えた。