每个细胞的不同选择器数据

时间:2016-09-02 15:27:15

标签: ios objective-c uitableview uitextfield uipickerview

我有一个带有自定义单元格的表格视图,每个单元格都包含一个textField。当用户点击文本字段时,将显示UIPickerView。我已经完成了这种方法并且工作正常。问题是,选择器应显示不同的数据,具体取决于哪个textField被点击,我该如何检测?

我做了什么:

  • 在viewDidLoad中,我创建了一个包含UIPickerView的视图属性。
  • 在cellForRowAtIndexPath中:我将该视图与选择器一起分配为textField的inputView(我这样做是为了避免每次渲染单元格时都创建一个选择器)。

1 个答案:

答案 0 :(得分:0)

好的,我找到了一个非常流畅的解决方案:

  • 我在每个单元格上禁用了textField
  • 我停止将选择器添加为cellForRowAtIndexPath
  • 中的inputView
  • 一旦用户点击didSelectRowAtIndexPath(当他们点击textField时调用),我会执行以下操作:

if ([dataInfo[indexPath.row] isEqualToString:@"Accessibility"]) { pickerItems = accessibilityItems; } else if ([dataInfo[indexPath.row] isEqualToString:@"Floor"]){ pickerItems = floorItems; }

[picker reloadAllComponents]; SubCellTableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; [cell.subcellSubtitleTextField setEnabled:YES]; cell.subcellSubtitleTextField.inputView = viewContainingPicker; [cell.subcellSubtitleTextField becomeFirstResponder];

我希望这可以帮助别人!