我在一个viewcontroller上使用多个pickerview。我在相应的选择器视图中获得了正确的数据,但是pickerview中的行对称视图不正确。第一个pickerview中的数据视图是正确的,但在第二个pickerview中,行从pickerview的底部开始。
我附上了两个pickerviews的截图。
为了区分2个选择器,我使用了pickerview标签。
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 31{
return arr_statename.count
}else{
return arr_cityname.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 31{
return arr_statename[row]
}else{
return arr_cityname[row]
}
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView.tag == 31{
state.text = arr_statename[row]
}else{
city.text = arr_cityname[row]
}
}
有人可以帮忙吗?感谢。
答案 0 :(得分:0)
尝试这个我希望可能会有所帮助!!
只需在视图中添加观察者加载
NSNotificationCenter.defaultCenter().addObserver(self, selector:#selector(self.updatePicker), name: UITextFieldTextDidBeginEditingNotification, object: nil)
并重新加载组件
func updatePicker(){
self.pickerView.reloadAllComponents()
}
答案 1 :(得分:0)
您是否考虑在同一个viewController上使用带有2个组件的单个pickerView而不是两个单独的pickerView?如果它满足您的应用程序的需求,使用单个多组件pickerView可提供更好的UI并避免您遇到的问题类型。