Berechnung mit PickerView ohne Button

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Berechnung mit PickerView ohne Button

    Hallo ihr Lieben,

    ich führe eine Berechnung Länge x Breite mit Textfeldern durch ohne Button. Das funktioniert super.
    Will ich aber mit einem PickerView die Berechnung vereinfachen, so funktioniert es nicht mehr. Die Auswahl aus dem Pickerview lass ich auch in einem Textfeld anzeigen.
    Wenn ich selber wieder Zahlen in das Textfeld eingebe, funktioniert die automatische Berechnung, aber nicht mit dem PickerView. Das ganze ist für die Feuerwehr. Mit dem Slider für die Zumischrate,
    die ich in ein Label ausgebe weiß ich leider auch noch nicht weiter.

    //
    // ViewController.swift
    // Schaumrechner1.
    //
    // Created by Marv alias Lucky on 29.04.19.
    // Copyright © 2019 Marv alias Lucky. All rights reserved.
    //

    import UIKit

    class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate {
    // Modul Länge, Breite
    @IBOutlet weak var länge: UITextField!
    @IBOutlet weak var breite: UITextField!
    var Länge = 0.0
    var Breite = 0.0
    var Schaumh = 0.0
    var Ergebnis = 0.0

    @objc func textChanged() {
    let LängeValue = Int(länge.text!)
    let BreiteValue = Int(breite.text!)
    let schaumhöhenanzeigeValue = Int(schaumhöheanzeige.text!)
    ergebnis.text = String(describing:
    (LängeValue ?? 0) * (BreiteValue ?? 0) * (schaumhöhenanzeigeValue ?? 0)
    )
    }

    // Modul Schaumhöhe
    @IBOutlet weak var schaumhöheanzeige: UITextField!
    @IBOutlet weak var schaumhöheauswahl: UIPickerView!
    let schaumh = ["5","10","15","20","25","30","35","40","45","50"]
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return schaumh[row]
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return schaumh.count
    }
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    schaumhöheanzeige.text = (schaumh[row])
    }

    // Modul Zumischrate
    @IBOutlet weak var zumischratenanzeige: UILabel!
    @IBAction func zumischrate(_ sender: UISlider) {
    let zumischrate = (sender.value)
    let zumischraterunden = round(10*zumischrate)/10
    zumischratenanzeige.text = "\(zumischraterunden) %"
    //Hier wird versucht zu runden
    //let d0 = 1.12345654
    //let r0 = round(d0) //1
    //let r1 = round(10 * d0)/10 //1.1
    //let r2 = round(100 * d0)/100 //1.12
    //print(d0,r0,r1,r2)
    }

    // Modul Ergebnis
    @IBOutlet weak var ergebnis: UILabel!

    override func viewDidLoad() {
    super.viewDidLoad()
    länge.addTarget(self, action: #selector(textChanged), for: .editingChanged)
    breite.addTarget(self, action: #selector(textChanged), for: .editingChanged)
    schaumhöheanzeige.addTarget(self, action: #selector(textChanged), for: .editingChanged)
    // Do any additional setup after loading the view, typically from a nib.
    }
    override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
    }
    }

    Bin für jeden brauchbaren Tip sehr dankbar.