Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用pickerview和文本字段更新标签_Ios_Swift_Ios7_Swift2_Xcode7 - Fatal编程技术网

Ios 使用pickerview和文本字段更新标签

Ios 使用pickerview和文本字段更新标签,ios,swift,ios7,swift2,xcode7,Ios,Swift,Ios7,Swift2,Xcode7,我有一个PickerView,可以存放价值。此值将使用用户文本字段输入进行计算。结果将显示在标签中。这对我很有用。 启动应用程序后,文本字段的固定编号为1。 现在如何使用Pickerview自动更新标签? 我读了很多书,尝试了很多东西,但都不管用。 也许这是一件小事,但我看不出来 import UIKit class BalkenbewehrungVC: UIViewController, UIPopoverPresentationControllerDelegate, UIPickerVie

我有一个PickerView,可以存放价值。此值将使用用户文本字段输入进行计算。结果将显示在标签中。这对我很有用。 启动应用程序后,文本字段的固定编号为1。 现在如何使用Pickerview自动更新标签? 我读了很多书,尝试了很多东西,但都不管用。 也许这是一件小事,但我看不出来

import UIKit

class BalkenbewehrungVC: UIViewController, UIPopoverPresentationControllerDelegate, UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate {

    // Deklarationen Pickerview
    var multiplicator : Double = 0.0

    let multiplicators = [0.0,6.0,8.0,10.0,12.0,14.0,16.0,20.0,25.0,26.0,28.0,30.0,32.0,36.0,40.0,50.0]

    let PI = 3.1415

    // Pickerview füllen
    var pickerDataSource = ["---","Ø 6","Ø 8","Ø 10","Ø 12","Ø 14","Ø 16","Ø 20","Ø 25","Ø 26","Ø 28","Ø 30","Ø 32","Ø 36","Ø 40","Ø 50"]


    // Picker im aktivieren
    @IBOutlet weak var Pickerview: UIPickerView!


    // Ausgabewert As = xxxx cm
    @IBOutlet var AusgabePicker: UILabel!

    // Eingabe Anzahl Stäbe
    @IBOutlet var AnzahlStab: UITextField!

      @IBAction func test(sender: UITextField) {

        if AnzahlStab.text!.isEmpty {

            AnzahlStab.text = "1"

            let result1 = (multiplicator / 10) * (multiplicator / 10) * PI / 4 * 1

            AusgabePicker.text! = String(format:"%.3f", result1)


        } else {

            let result = (multiplicator / 10) * (multiplicator / 10) * PI / 4 * (AnzahlStab.text! as NSString).doubleValue
            // let resultString = "\(result)"


            AusgabePicker.text = String(format:"%.3f", result)
        }

    }

// Picker - feste Reihen
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    // Picker - Aufaddierung neuer Reihen
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return pickerDataSource.count

    }

    // Picker - Datenübernahme multiplicator in Picker
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return pickerDataSource[row]


    }

    // Picker - Wertefestlegung Picker
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        multiplicator = multiplicators[row]
        _ = NSNumberFormatter.localizedStringFromNumber(NSNumber(double: multiplicator), numberStyle:.DecimalStyle)

    }

pickerView
didSelectRow
方法中,将标签文本设置为新计算的值

更新:要根据文本字段的输入更新标签文本,请在
ViewController
viewDidLoad
方法中添加此行

AnzahlStab.delegate = self

然后添加
textfielddidediting
方法,并在其中将标签的文本更新为新值。编辑完文本字段后将调用此方法。

需要在选择器视图中调用函数测试
didSelectRow
。或者简单地用以下代码替换您的
didSelectRow


希望此答案对您有所帮助。

Pickerview立即更新标签!但现在文本字段输入不能直接更新标签。只有在旋转pickerview之后。谢谢,谢谢。在这里我必须添加文本字段didendediting方法是的,很好。拥有它:o)。非常感谢你的帮助
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        multiplicator = multiplicators[row]
        _ = NSNumberFormatter.localizedStringFromNumber(NSNumber(double: multiplicator), numberStyle:.DecimalStyle)
        self.test(AnzahlStab)
    }