InputView无法在UICollectionView内的TextFields中工作

时间:2017-07-19 06:44:03

标签: ios objective-c

在我CollectionViewCells的每个内部添加了UITextField,需要从选择器视图中获取输入。

所以我在我的CellForRowAtIndexPath中将in​​putView指定为pickerView。 当我运行代码时,输​​入视图部分为空。没有任何挑选视图。

  

我意识到数据源方法没有被调用。

在我的ViewController

上创建了

percentagePicker

这是我的cellForRowAtIndexPath方法

    cell.cropPercent.text = [NSString stringWithFormat:@"%@",cropPercentagesList[indexPath.row];

    UIPickerView *pikerView = _percentagePicker;

    [_percentagePicker removeFromSuperview];

    pikerView.delegate =self;
    pikerView.dataSource = self;

    cell.cropPercent.textColor = [UIColor redColor];

    cell.cropPercent.inputView = pikerView;

2 个答案:

答案 0 :(得分:1)

不是创建UIPickerView的插座并将其分配给pickerView以显示为inputView,而只需尝试下面的代码。

    UIPickerView *pikerView = [[UIPickerView alloc]init];

    pikerView.delegate =self;
    pikerView.dataSource = self;

    cell.cropPercent.textColor = [UIColor redColor];

    cell.cropPercent.inputView = pikerView;

答案 1 :(得分:0)

您应该将pickerView代码移至viewDidLoad,因为它在viewController中。不要创建新UIPickerView;

的实例
- (void) viewDidLoad
 {
     [super viewDidLoad];

    _percentagePicker.delegate =self;
    _percentagePicker.dataSource = self;
 }

cellForRow中执行此操作并删除其他UIPickerView代码:

cell.cropPercent.inputView = pikerView;
yourPickerDataSourceArray = yourSource[indexPath.row];
[percentagePicker reloadAllComponents];