2020-01-01から1年間の記事一覧
計算結果をメイン画面の金額入力欄に反映できるようにする。 MainViewのamountをBindingに変更して、 大元の画面に受け渡し用の変数を定義しそれを渡すように変更したが、 MainViewは引数がないとの理由でエラーが起きる。 ???
計算結果を表示したが、最初の値がいまいち。 結果を保存する際に一度数値変換してからに変更
履歴選択用のViewを作成して、 CalculatorViewに呼び出しボタンを追加 ボタンが表示され、 ボタンを押すと画面遷移
履歴を呼び出せるようにする。 CalculatorViewに 履歴用変数historyを定義して、 View内のCalc関数に変数へ追加する処理を実装
クリアボタンを配置し動作を定義する。 Cは入力内容の消去とし、 ACは計算結果も消去とする。
入力が0で×を押してから+を押すと0の掛け算が行われて0になる。 Calcの最初に次の処理を記載し、 入力が0の場合には機能ボタンのみ変更するよう変更。
計算処理の関数を変更 機能ボタンが押されてない場合は数字を結果欄に移動し、 機能を設定する。 機能ボタンが押されている場合はその機能に合わせて計算し、 次の機能を設定する。 計算結果が0の場合は計算しない。 =の場合は機能を設定しない。 大枠想定通…
そもそも計算ロジックがぼろぼろだった。 機能ボタンを押した時点で計算するのはおかしい。 対応として、押した機能ボタンを保持する変数を定義し、 (表示する必要はないが)押されたボタンを表示するよう変更。 上段に計算結果と機能ボタンが表示される。
少数の処理があるため、 Intの箇所をDoubleに変更 最初から小数点表記になった。 いまいちではある。
実際の計算ロジックを少しずつ入れていく。 関数名を変更し、掛け算の処理を追加 xボタンの処理も関数に合わせて変更 111x2xを連続して押すとこの通り。
計算の途中経過を表示できるよう変数saveを用意し、 その内容を表示する 機能ボタン(+-など)を押した際の関数を定義し、 数値ボタンと機能ボタンの処理を定義する。 999+と連続で押すと、
resultを数値に変換して頭の0を削除して、 再度文字列に変換する。 解消した。
結果を表示する領域を作り、 buttonの内容が表示されるよう処理を追加する。 7を2回押すと、あらら。
全てのbuttonを設定してまずは表示を確認 見た目は整った。
buttonの動作は削除して表示だけにしたが、 少し冗長な気がする。 ZStackの部分をView化しよう。 button用のViewを作成して、 それを適用する。だいぶすっきりした。
数字を表示しただけなので、buttonとして実装する。 動作確認のため7だけactionをつけたボタンにする。 buttonとして機能している。
ZStackを使って円と数字を重ねてみる。 まあましにはなったかな。
計算機用のビューを作っていく。 数字を並べたがなんか味気ない。
計算したいこともあるので、 計算機を作ってみよう。 まずは計算機用タブを追加
よく見たら、余白が大きくなってしまっていたため、 ListRowInsetsの指定をbuttonに変更。 元に戻った。
連日同じような支出がある場合用に、 明細の各行をタップすると、 その内容が入力欄に表示されるようにする。 1行目をタップするとその内容が反映された。 これは非常に便利。
支出・入金の集計を表示する。 onAppearでデータを集計し、その内容を表示する。 できた。
集計内容を表示するタブを追加する。 ContentViewにタブ用のViewを追加し、 対応するViewを作成する。(アイコンも変更) 簡単に切り替え画面切り替えができるようになった。
別画面に集計を表示したいのでタブを利用する。 今までのContentViewの名称を変え、 ContentViewを新たに作成し、 そこに名称を変えたViewを表示する。 画面の下部にタブが表示された。
リストの表示を微調整する。 ダサいやり方でヘッダと明細の各項目の幅を定義した。 一応それなりに表示されたが余白が気になったので、 ヘッダ・明細どちらにもListRowInsetsを追加し余白を削除 少し表示領域が広くなった。
画面全体の定義が終わったら、 選択ボタンに.sheetを追加し、categoryを参照として渡す。 選択ボタンで選択画面が表示され、 選択した内容が表示された。
次に選択画面全体を作成する。 受け渡しのための変数categoryを用意 onAppearで過去データからcategoryの内容を取得し、 その内容をListで表示 categoryの内容を取得時にSetを使うことで重複が排除される。
次に選択画面を作るが、 まずは選択に表示するリストの各行用のViewを作成する。 渡されたtext(category)をボタンとして表示し、 ボタンが押された時には、渡されたtextに押したボタンのテキストを格納して、 presentationMode.wrappedValue.dismiss()で画面…
分類は同じものを入力することが多いので、 過去に入力したものを選択できるようにしよう。 選択画面を出すボタンを配置する。 入金・支出の区分をメモの行に移動させ、そこに選択ボタンを配置 選択画面の表示を判定する変数isCategoryViewを定義しておき、 …
残金を確認するためのこづかい帳でもあるので、 残高を表示しよう。 残高保持用変数を追加 Hstackを使用し、登録ボタンの左に残高を表記(行94〜97)。 onAppearで残高を計算(行144)。 入金の合計から支出の合計を減算する。 表示された。