UIPickerView 选择更新 UITextFields 的 NSArray
Posted
技术标签:
【中文标题】UIPickerView 选择更新 UITextFields 的 NSArray【英文标题】:UIPickerView selection updates NSArray of UITextFields 【发布时间】:2013-11-12 21:49:53 【问题描述】:我创建了一个UIScrollView
,其中包含动态数量的 UIView。每个 UIView 内部都会有一个动态的 UItextField
s 数量。
视图本身看起来像这样
这个白框是 UIView,黑框是 UITextfield
s。
我有一种方法可以将这些UITextfield
s 放入一个数组数组中。所以你有一个UIView
s 数组,然后在每个数组中都有一个UITextfield
s 数组。
该代码如下所示。
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】:如果我理解正确,您可以使用UIView
的tag
属性
我通常做的(因为我自己也遇到过这个问题)是:
A
。您有已知数量的元素,并将标签从 1
分配到 n
B
。如果您可以添加/删除/或者您只有动态数量的元素,请将素数与1
、2
、3
等相乘。
1
线上,您使用素数3
。所以你的文本字段
将具有3
、6
、9
、12
、15
和 18
等标签
那么对于第二行,您将使用7
。所以你会有你的文本字段
标记为7
、14
、21
、28
、35
和 43
对于3
行,您使用11
对于4
行,您使用13
等等...
有很多方法可以做到,这些只是我的头脑或实际使用的,如果我没有正确理解你想要什么,请随时告诉我。
【讨论】:
好吧,这绝对是有道理的。我会试一试。我在 UITextField 上寻找了一个标签属性,因为我使用了 UIButton 标签,但我还没有看到它的 UITextField 版本。现在将再次检查它。 我已经这样做了,但我不确定如何将 UIPickerView 中选择的值放入 UITextField。 你能再解释一下吗?你现在想做什么? 我有一个 UIPickerView 触摸时将当前值发送到选择器委托方法。我想知道如何将此值放入 UITextField。整天都在为此奋斗,哈哈 这很简单。在 didSelectRow 中,您将值发送到关联的 UITextField以上是关于UIPickerView 选择更新 UITextFields 的 NSArray的主要内容,如果未能解决你的问题,请参考以下文章
我可以在不按任何选择按钮的情况下从我的 uipickerview 行的值自动更新我的 uitextview 吗?