【问题标题】:How to multiply number from a pickerview in swift如何快速从pickerview中乘以数字
【发布时间】:2017-05-11 18:38:41
【问题描述】:

我上网查了一下,但找不到我的问题的答案。对不起,如果它是我没有找到的地方。

所以我有一个带有名称的选择器视图,每个名称都有一个值。我想在另一个计算中添加这些值。 代码如下:

class ViewController: UIViewController, UIPickerViewDelegate,  UIPickerViewDataSource {

@IBOutlet var PickerPres: UIPickerView!
@IBOutlet var LabelPres: UILabel!

let PVpres:[(name: String, numb: Double)] = [("Blue",1), ("Red",2),   ("Green",3)]



func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {

    return 1

}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    return PVpres[row].name
}

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

}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    LabelPres.text = PVpres[row].name

}

我也有

var color = Float (ColorTextField.text!)!
var item = Float (ItemTextField.text!)!
var source = Float (SourceTextField.text!)!

我想将分配给pickerView中项目的麻木分配到这个计算中:

Total = color * PVpres[0].numb / item* source

但是没用

谢谢

JC

【问题讨论】:

  • 如果您编辑问题以描述它如何不起作用,将会很有帮助。有错误信息吗?结果与你预期的不同?真正的问题是什么?
  • 嗨罗伯特!感谢您的回复
  • 最后我没有很好地描述对不起。它是 Total = (color * PVpres[0].num) / item* source,没关系。但是如果我想添加任何选定行的计算,我尝试输入 PVpres[row].numb 但有消息“未解决的标识符行”

标签: swift calculation pickerview


【解决方案1】:

要从选择器中获取所选行,您必须使用 selectedRow(inComponent component: Int) 方法。您还应该检查是否实际选择了任何行。但是这段代码假设你的计算是基于一个简单的数组索引

let selectedRow = PickerPres.selectedRow(inComponent: 0)

//check if any row is actually selected. if nothing is selected it will be -1
if selectedRow != -1 {
    Total = (color * PVpres[selectedRow].numb) / item* source
}

【讨论】:

  • 非常感谢您的帮助!它是这样工作的。但是我想乘以的是[numb]而不是数组的等级。因为在我有 [("Orange", 7), ("Pink",10), ("Black",12)]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 2020-09-21
  • 2011-04-10
相关资源
最近更新 更多