UIPickerView 选择更新 UITextFields 的 NSArray

Posted

技术标签:

【中文标题】UIPickerView 选择更新 UITextFields 的 NSArray【英文标题】:UIPickerView selection updates NSArray of UITextFields 【发布时间】:2013-11-12 21:49:53 【问题描述】:

我创建了一个UIScrollView,其中包含动态数量的 UIView。每个 UIView 内部都会有一个动态的 UItextFields 数量。

视图本身看起来像这样

这个白框是 UIView,黑框是 UITextfields。

我有一种方法可以将这些UITextfields 放入一个数组数组中。所以你有一个UIViews 数组,然后在每个数组中都有一个UITextfields 数组。

该代码如下所示。

for(int i = 0; i< viewcount; i++) 
        color = color + 20;
        NSLog(@"%f", color);
        CGFloat y = i * 91;

        UIScrollView *axisContainerScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, y,self.view.frame.size.width, 90.0)];
        axisContainerScrollView.contentSize = CGSizeMake(600.0, 90.0);
        axisContainerScrollView.backgroundColor = [UIColor whiteColor];
        [htmlContainerScrollView addSubview:axisContainerScrollView];

//        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, 90.0)];
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 640.0, 90.0)];
        view.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:(1.0/i)];;
        [axisContainerScrollView addSubview:view];

        int cutCount = [cutsString integerValue];
        int positions = (view.frame.size.width/cutCount);

        for (int i = 0; i < cutCount; i++) 
            //first one
            UITextField *cutField = [[UITextField alloc] initWithFrame:CGRectMake(((positions*i)-(20/2)+(positions/2)), 25, 20, 20)];
            cutField.textColor = [UIColor colorWithRed:0/256.0 green:84/256.0 blue:129/256.0 alpha:1.0];
            cutField.font = [UIFont fontWithName:@"Helvetica-Bold" size:25];
            cutField.backgroundColor=[UIColor whiteColor];
            [view addSubview:cutField];

            [columnArrayOfTextFields addObject:cutField]; // array of textfields
        
        [rowArrayOfTextFields addObject:columnArrayOfTextFields]; // array of arrays

    

我需要帮助的是如何逐步遍历每个 UITextField 并输入来自 UIPickerView 的值。因此,当您选择值时,您会从左到右填充每个 UITextField,然后向下遍历每个 UItextField

我有一个用于UIPickerView 的手势识别器,它会调用这样的方法

UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pickerTap:)];

我认为 NSArrays 的 NSArray 是一个好的开始,但我只是不知道如何从这里取得进展。

【问题讨论】:

UICollectionView 可能是处理此问题的更好方法,因为它设置为管理对象的行/列/网格。 好的,我会调查一下这个问题。 【参考方案1】:

如果我理解正确,您可以使用UIViewtag 属性

我通常做的(因为我自己也遇到过这个问题)是:

A。您有已知数量的元素,并将标签从 1 分配到 n

B。如果您可以添加/删除/或者您只有动态数量的元素,请将素数与123 等相乘。

例如,在1 线上,您使用素数3。所以你的文本字段 将具有369121518 等标签 那么对于第二行,您将使用7。所以你会有你的文本字段 标记为71421283543 对于3 行,您使用11 对于4 行,您使用13 等等...

有很多方法可以做到,这些只是我的头脑或实际使用的,如果我没有正确理解你想要什么,请随时告诉我。

【讨论】:

好吧,这绝对是有道理的。我会试一试。我在 UITextField 上寻找了一个标签属性,因为我使用了 UIButton 标签,但我还没有看到它的 UITextField 版本。现在将再次检查它。 我已经这样做了,但我不确定如何将 UIPickerView 中选择的值放入 UITextField。 你能再解释一下吗?你现在想做什么? 我有一个 UIPickerView 触摸时将当前值发送到选择器委托方法。我想知道如何将此值放入 UITextField。整天都在为此奋斗,哈哈 这很简单。在 didSelectRow 中,您将值发送到关联的 UITextField

以上是关于UIPickerView 选择更新 UITextFields 的 NSArray的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不按任何选择按钮的情况下从我的 uipickerview 行的值自动更新我的 uitextview 吗?

如何让 UIPickerview 自动更新 UILabel

更新 UIPickerView 中的内容

更改 UIPickerView 选择指示器的颜色

从另一个控制器的 UIPickerView 更新 UIButton 的标题

UIPickerView 作为按钮操作并根据选择器的选定值设置文本字段的文本