UIPickerView选择更新UITextFields的NSArray

时间:2013-11-12 21:49:54

标签: ios nsmutablearray nsarray uipickerview

我创建了一个UIScrollView,其中包含动态数量的UIViews。每个UIView内部都是UItextField s的动态数字。

视图本身看起来像这样

enter image description here

此白框是UIViews,黑框是UITextfield s。

我有一个将这些UITextfield放入数组数组的方法。所以你有一个UIView数组然后在每个数组中都有一个UITextfield的数组。

该代码看起来像这样。

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:)];

任何有关pickerTap方法的帮助都会非常感激,因为我不知道如何做到这一点...我认为NSArrays的NSArray是一个好的开始,但我只是不确定如何从这里进步

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用tag

UIView属性

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

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

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

  • 例如,在1行,您使用素数3。所以你的文字字段 将包含369121518
  • 等标记
  • 然后,对于第二行,您将使用7。所以你将拥有你的文本字段 已标记为71421283543
  • 对于行3,您使用11
  • 对于第4行,您使用13依此类推......

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