2015-04-04 55 views
0

在Swift中,我试图设置一个选择器,以便它将使用返回的值作为行的初始标题。我知道如何在初始标题设置为常数的地方数组中:如何设置选择标题以使用变量float作为初始值? (Swift)

class DiagnosticLensVC : UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 

let myFloatArray : [Float] = [40,40.25,40.5,40.75,41,41.25,41.5,41.75,42,42.25,42.5,42.75,43,43.25,43.5,43.75,44,44.25,44.5,44.75,45,45.25,45.5,45.75,46,46.25,46.5,46.75,47,47.25,47.5,47.75,48,48.25,48.5,48.75,49,49.25,49.5,49.75,50] 

// picker view stuff 

func viewDidLoad() { 
    super.viewDidLoad() 

    myPicker.selectRow(0, inComponent: 0, animated: true) 

    } 
} 

但我怎么会初始行设置为从函数返回一个值?有没有一种方法可以使用字典数组[Int:Float],然后将键设置为数组的数字,然后将值设置为需要用于计算的浮点数,然后将键设置为索引数组?有人可以在这里指出我正确的方向吗?

回答

1

不知道如果我正确地理解你的问题:

你必须返回一个浮点数,现在你想将pickerView设置为您的数据数组中的条目,等于该值的功能?

将浮点数与固定值进行比较通常是一个糟糕的主意,并且会使您发疯。如果函数的结果值肯定是数组中的一个值,那么根据某些计算返回数组索引而不是浮点值可能会好得多。

要查找数组中的一个元素的索引:

if let index = find(myFloatArray,42.75) { 
    println(index) // prints 11 
    myPicker.selectRow(index, inComponent: 0, animated: true) 
} 
+0

很抱歉的混乱。为了澄清,我试图从函数中获取返回的float,将其传递给下一个视图控制器,然后将第二个视图控制器上的选择器设置为加载显示的值。我已经设置了函数,以便它只能以四分之一的增量返回值(45.25,45.5,45.75等)。我的问题是,我无法弄清楚如何在数组中指定一个与返回值相关的索引。任何想法,我应该从哪里去?谢谢。 – NoClue 2015-04-04 17:53:52

+0

我已经更新了我的答案 – zisoft 2015-04-04 17:57:58