簡體   English   中英

從UIpickerview提取值作為變量

[英]extract value from UIpickerview as variable

所以我有一個用於UIpickerview的代碼,我想選擇該值作為變量供以后使用,我嘗試使用可變重力,但是它說“從未使用可變重力初始化...。”這是我的代碼:

 var g = ["9.807", "3.711"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
}

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

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

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    var gravity = Float(g[row])
}

您的gravity變量是局部的 ,因此給定的警告是完全有意義的(即,其范圍僅限於給定的函數)。

您應該使用以下UIPickerView方法獲取當前選定的索引:

func selectedRow(inComponent component: Int) -> Int

例如:

let gIndex = pickerView.selectedRow(inComponent: 0)
let gValue = Float(g[gIndex])!

需要注意的是,你甚至都不需要實現didSelectRow委托方法來獲取這些信息。

正如注釋中正確指出的,您當然需要聲明UIPickerView並將其綁定到視圖控制器的實例UIPickerView

@IBOutlet weak var pickerView: UIPickerView!

您需要在方法范圍之外聲明var:

var gravity: Float?
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
   gravity = Float(g[row])
}

局部變量作用域僅限於該方法,並且由於您不在該方法中使用它,因此會收到警告。

這是Swift而不是Javascript :)

要使用pickerView,請首先提及其DataSource和Delegate。

UIPickerViewDataSource, UIPickerViewDelegate

現在通過右鍵單擊pickerView->到ViewContoller.swfit來創建它。您將得到:

@IBOutlet var pickerView: [UIPickerView]!

創建一個數組,其中包含要在pickerView中顯示的內容。 像這樣:

var array:[String] = ["David","Mikel","Akhil","Akshay","Zlatan"]

現在,您必須使用pickerView函數。 僅當您在類中提到DataSource和Delegate時,才可以使用這些功能。 這些功能是:

// number of rows or number of components
func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
}

// number of rows that we have to set
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return array.count
}

// set title in picker view according to the elements
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return array[row]
}

// when an element is selected, store in a string
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    pickerString = array[row]
    print(pickerString) // pickerString is String type. You can create this, to show the content selected.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM