按顺序填充标签

时间:2015-08-12 09:09:58

标签: swift xcode6

希望每个人都可以帮助我吗?我希望我找到最好的方法。我有一个挑选视图。此pickerview会覆盖值(从用户中选择)以计算到标签中。计算结果将显示在label1中。现在我的问题是“我怎么能意识到它会覆盖第一个结果来标记ausgabe,第二个结果是labelausgabe1如果标签ausgabe被填充,否则填充标签ausgabe1等等......并在运行时保存结果”。提前致谢

import Foundation

class Balkenbewehrung : UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

var multiplicator : Double = 1.0

var pickerDataSource = ["Ø 6",
                        "Ø 8",
                        "Ø 10",
                        "Ø 12",
                        "Ø 14",
                        "Ø 16",
                        "Ø 20",
                        "Ø 25",
                        "Ø 26",
                        "Ø 28",
                        "Ø 30",
                        "Ø 32",
                        "Ø 36",
                        "Ø 40",
                        "Ø 50"]
@IBOutlet var menü: UIBarButtonItem!
@IBOutlet weak var myPicker: UIPickerView!
@IBOutlet weak var myLabel: UILabel!
@IBOutlet var txt: UITextField!

@IBOutlet var ausgabe: UILabel!

@IBAction func b(sender: AnyObject) {

   let result = multiplicator * (txt.text as NSString).doubleValue

    ausgabe.text = "\(result)"

}


override func viewDidLoad() {
    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    menü.target = self.revealViewController()
    menü.action = Selector("revealToggle:")
    myPicker?.delegate = self
    myPicker?.dataSource = self
    myPicker.layer.borderColor = UIColor.darkGrayColor().CGColor
    myPicker.backgroundColor = UIColor.whiteColor()
    self.view.backgroundColor = UIColor.lightGrayColor()

}

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.478"
        multiplicator = 0.478
    }
    else if(row==1)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==2)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==3)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==4)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==5)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==6)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==7)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==8)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==9)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==10)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==11)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==12)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==13)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }
    else if(row==14)
    {
        myLabel.text = "0.478"
        multiplicator = 0.478
    }

}
}

1 个答案:

答案 0 :(得分:0)

尝试这样的事情,假设有两个UILabel wert1wert2

  • 如果wert1为空,请将字符串放在wert1
  • 如果wert2为空,请将字符串放在wert2
  • 如果没有标签为空,请执行操作。

    @IBAction func b(sender: AnyObject) {
    
      let result = multiplicator * (txt.text as NSString).doubleValue
      let resultString = "\(result)"
    
      ausgabe.text = resultString
    
      if wert1.text.isEmpty {
        wert1.text = resultString
      } else if wert2.text.isEmpty {
        wert2.text = resultString
      } else {
        doMultiplication()
      }
    

    }

您可以使用乘数值数组和pickerView:didSelectRow:来简化NSNumberFormatter方法以获取本地化字符串

let multiplicators  = [0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478, 0.478]

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
  multiplicator = multiplicators[row]
  let multiplicatorString = NSNumberFormatter.localizedStringFromNumber(NSNumber(double: multiplicator), numberStyle: .DecimalStyle)
  myLabel.text = multiplicatorString
}