UIPickerView.selectedRowInComponent中的"component"是什么意思?
What is the meaning of "component" in a UIPickerView.selectedRowInComponent?
在Xcode中使用Swift,我想制作:
1) A PICKER
,数据来自数组
2) A BUTTON
,按下时将使用 PICKER
的选定行中的文本更新 LABEL
我目前的代码:
var array = ["Sydney", "London", "Washington", "Tokyo", "San Francisco"]
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return array.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return array[row]
}
@IBOutlet weak var PICKER: UIPickerView!
@IBOutlet weak var LABEL: UILabel!
@IBAction func BUTTON(sender: AnyObject) {
LABEL.text = array[PICKER.selectedRowInComponent(0)]
}
到目前为止一切正常。但是我有两个问题:
1) 我应该在 PICKER.selectedRowInComponent
中输入“0”吗?这是什么意思?因为它没有数字或任何其他数字都不起作用。这是否意味着只选择第一行(而不是选择用户已选择的行)?
2) 如何让 PICKER
在应用程序加载时默认显示数组的中间项而不是第一项(例如本例中的 Washington
)?
拾取器可以有多个轮子(组件)。例如,您可能有每个数字的单独轮盘,或者您可能有日、月和年轮盘。它们从 0 开始编号。所以 "Component 0" 只是第一个轮子(而你只有一个)。
选择行是通过调用 selectRow(inComponent:animated:)
完成的。
UIPickerView
可以有多个轮子(命名组件),并从 0 开始编号。例如,具有 3 个组件的选择器视图如下所示 其中
- 第一个轮子(“6”)是组件
0
- 第二轮(“00”)是组件
1
- 第三轮("AM")是组件
2
与问题标题无关,但选择行是通过调用 selectRow(_:inComponent:animated:)
完成的
var array = ["Sydney", "London", "Washington", "Tokyo", "San Francisco"]
// code...
yourPicker.selectRow(array.count/2, inComponent: 0, animated: true);
在Xcode中使用Swift,我想制作:
1) A PICKER
,数据来自数组
2) A BUTTON
,按下时将使用 PICKER
LABEL
我目前的代码:
var array = ["Sydney", "London", "Washington", "Tokyo", "San Francisco"]
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return array.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return array[row]
}
@IBOutlet weak var PICKER: UIPickerView!
@IBOutlet weak var LABEL: UILabel!
@IBAction func BUTTON(sender: AnyObject) {
LABEL.text = array[PICKER.selectedRowInComponent(0)]
}
到目前为止一切正常。但是我有两个问题:
1) 我应该在 PICKER.selectedRowInComponent
中输入“0”吗?这是什么意思?因为它没有数字或任何其他数字都不起作用。这是否意味着只选择第一行(而不是选择用户已选择的行)?
2) 如何让 PICKER
在应用程序加载时默认显示数组的中间项而不是第一项(例如本例中的 Washington
)?
拾取器可以有多个轮子(组件)。例如,您可能有每个数字的单独轮盘,或者您可能有日、月和年轮盘。它们从 0 开始编号。所以 "Component 0" 只是第一个轮子(而你只有一个)。
选择行是通过调用 selectRow(inComponent:animated:)
完成的。
UIPickerView
可以有多个轮子(命名组件),并从 0 开始编号。例如,具有 3 个组件的选择器视图如下所示
- 第一个轮子(“6”)是组件
0
- 第二轮(“00”)是组件
1
- 第三轮("AM")是组件
2
与问题标题无关,但选择行是通过调用 selectRow(_:inComponent:animated:)
var array = ["Sydney", "London", "Washington", "Tokyo", "San Francisco"]
// code...
yourPicker.selectRow(array.count/2, inComponent: 0, animated: true);