[英]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.