LoginSignup
0
2

【Swift】入力フォームで入力金額から手数料を引いた額を自動算出して表示

Last updated at Posted at 2021-10-18

Swiftを使って、入力フォームで入力金額から手数料を引いた額を自動算出して表示させる機能を実装。

イメージとしてはメルカリの出品画面のように、売値を入力すると、手数料を引いた売上額が自動で算出&表示される機能。

今回は入力フォームライブラリ「Eureka」を使用。

Eurekaを導入

Eurekaの導入は以下の記事を参照してください。

導入が終わったらswiftファイルでimportします。

import Eureka

入力フォームで入力金額から手数料を引いた額を自動算出して表示

次にフォームのコードをviewDidLoad内に入力します。


class ViewController : FormViewController{

    var profit : Int?

    override func viewDidLoad() {
        super.viewDidLoad()
        form
        +++ Section("金額")
            
        <<< IntRow(){ row in
            row.title = "金額"
            row.value = 0
            self.profit = row.value ?? 0
        }.onChange({ [unowned self] row in
            self.profit = row.value ?? 0  
            let real = Int(round(Double(self.profit ?? 0) * 0.9) - 300)
            let PrefRow = form.rowBy(tag: "real_profit") as! LabelRow
            PrefRow.value = String(real)
            PrefRow.reload()
        })
        <<< LabelRow(){ row in
            row.tag = "real_profit"
            row.title = "手数料を引いた金額"
            let real = Int(round(Double(self.profit ?? 0) * 0.9) - 300)
            row.value = String(real)
        }
    }
}

IntRowとLabelRowを用意し、IntRowが変更されるごとにonChangeが呼び出され、LabelRowの表示内容に反映させる仕組み。

onChange内でLabelRowのtagを呼び出し、valueを変更し、reloadしている。

また今回計算している手数料は入力金額の1割から300円引いた額。

round関数を用いて少数第1位を四捨五入し、整数になるように表示しています。

Swiftのお役立ち情報

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2