我的PickerView有点麻烦。首先,无论我做什么,我的ViewController都不接受UIPickerViewDataSource。其次,PickerView只显示第一行。我需要它来显示两行,并在一个名为TextField的学校中显示
我做错什么了?
在我发疯之前有人能帮我吗?
enter code here
private let typeComponent = 0
private let areaComponent = 1
private let typeOption = ["HighSchool of", "College of", "University of"]
private let areaOption = ["Miami", "Los Angeles", "New York"]
// PickerView - School 2 af 5
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 2
}
// PickerView - School 3 af 5
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == typeComponent {
return typeOption.count
} else {
return areaOption.count
}
}
// PickerView - School 4 af 5
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if component == typeComponent {
return typeOption[row]
} else {
return areaOption[row]
}
}
// PickerView - School 5 af 5
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// school.text = pickOption[component][row]
let typeRow = pickerView.selectedRow(inComponent: (0))
let areaRow = pickerView.selectedRow(inComponent: (1))
let type = typeOption[typeRow]
let area = areaOption[areaRow]
school.text = "\(type)\(area)"
}
override func viewDidLoad() {
super.viewDidLoad()
//Placeholder TextView Interest and about 1 ag 3
Interest.delegate = self
Interest.text = "What are your interests..."
Interest.textColor = UIColor.lightGray
about.delegate = self
about.text = "Tell about yourself..."
about.textColor = UIColor.lightGray
//PickerView School 1 af 5
let pickerView = UIPickerView()
pickerView.delegate = self
pickerView.dataSource = self
pickerView.backgroundColor = UIColor.white
school.inputView = pickerView发布于 2016-12-01 19:17:15
实现UIPickerViewDataSource所需的所有方法。如果您不符合UIPickerViewDataSource,它将给您错误。
方法,这些方法是在一致性类中实现所需的
在SWIFT2.0中
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int在SWIFT3.0中
func numberOfComponents(in pickerView: UIPickerView) -> Int
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int发布于 2016-12-01 19:19:37
确保类符合UIPickerViewDataSource协议,如下所示:
class YourViewController: UIPickerViewDataSource {
//
}更新:
对于Swift 3,您必须使用以下数据源函数:
func numberOfComponents(in pickerView: UIPickerView) -> Int{
}而不是你用的那个。
https://stackoverflow.com/questions/40918551
复制相似问题