将带有数字的标签与带有数字的文本字段相乘

Multiply label with numbers with textfield with numbers

希望大家帮帮我。我是 swift 的新人。 如何将标签 l1(从 pickerview 获取数据(数字))与文本字段 txt(获取用户输入(数字))相乘。计算应该从按钮 b 开始。感谢帮助

class Flächenbewehrung : UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

var pickerDataSource = ["Ø 6","Ø 8"]

@IBOutlet weak var myPicker: UIPickerView!
@IBOutlet weak var myLabel: UILabel!
@IBOutlet var txt: UITextField!

@IBOutlet var l1: UILabel!

@IBAction func b(sender: AnyObject) {




}
override func viewDidLoad() {
    super.viewDidLoad()
    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    myPicker?.delegate = self
    myPicker?.dataSource = self
}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return pickerDataSource.count
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
    return pickerDataSource[row]
}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    if(row==0)
    {
        myLabel.text = "0,4"
    }
    else if(row==1)
    {
        myLabel.text = "0,6"
    }
}

我只是将数字与标签分开存储在不同的属性中。例如,您可以这样做:

class Flächenbewehrung : UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

var pickerDataSource = ["Ø 6","Ø 8"]

@IBOutlet weak var myPicker: UIPickerView!
@IBOutlet weak var myLabel: UILabel!
@IBOutlet var txt: UITextField!
var txtNumber: Double = 0.0 // Update this when you update txt
@IBOutlet var l1: UILabel!
var myLabelNumber: Double = 0.0 // Update this when you update l1
@IBAction func b(sender: AnyObject) {

  let result = txtNumber * myLabelNumber
  println(result) // Just for debug
  // store result somewhere or show it in your interface somehow

}

// 等……

}

我还是不太明白你的意思。

您可以在 pickerView:didSelectRow:

中进行数学运算
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
  var multiplicator : Double = 1.0
  if (row == 0)
  {
    myLabel.text = "0,4"
    multiplicator = 0.4
  }
  else if (row == 1)
  {
    myLabel.text = "0,6"
    multiplicator = 0.6
  }

  let result = multiplicator *  (txt.text! as NSString).doubleValue
  // If you want to display the result in a label use
  // anyLabel.text = "\(result)"
}

代码不包含任何错误处理,例如标签 txt 中的文本值可转换为 Double