动态生成 UITextFields
Posted
技术标签:
【中文标题】动态生成 UITextFields【英文标题】:Dynamically generate UITextFields 【发布时间】:2014-12-29 05:08:05 【问题描述】:我正在开发一个需要根据从 Web 服务收到的 json 的应用程序。实际上它是一个视图结构。它包含文本字段对象的坐标及其详细信息。我正在使用预定义数量的文本字段生成结构。
for (int i=0; i<[textFieldsArray count];i++)
NSDictionary *textFieldDict = [textFieldsArray objectAtIndex:i];
switch (i+1)
case 1:
textField1 = [[UITextField alloc]init];
textField1.tag = i+1;
textField1.text = [textFieldDict valueForKey:@"text"];
textField1.frame = CGRectMake(posx,posy,textWidth,textHeight);
[textField1 addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventTouchDown];
[self.imageView addSubview:textField1];
break;
case 2:
textField2 = [[UITextField alloc]init];
textField2.tag = i+1;
textField2.text = [textFieldDict valueForKey:@"text"];
textField2.frame = CGRectMake(posx,posy,textWidth,textHeight);
[self.imageView addSubview:textField2];
[textField2 addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventTouchDown];
break;
case 3:
textField3 = [[UITextField alloc]init];
textField3.tag = i+1;
textField3.text = [textFieldDict valueForKey:@"text"];
textField3.frame = CGRectMake(posx,posy,textWidth,textHeight);
[self.imageView addSubview:textField3];
[textField3 addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventTouchDown];
break;
default:
break;
我想将其扩展为无限的文本字段。有没有办法动态创建文本字段。
【问题讨论】:
您正在动态创建文本字段。我认为您要问的更多是关于变量-您可以将文本字段引用存储在 NSMutableArray 中,而不是单个 UItextField 变量 @Paulw11 你能帮我动态生成文本字段数组吗?我正在努力动态命名文本字段。我听说我们不能在运行时动态生成变量名。 ***.com/questions/4304358/… 看看这个 【参考方案1】:你必须像这样创建:
for (int i=0; i<[textFieldsArray count];i++)
NSDictionary *textFieldDict = [textFieldsArray objectAtIndex:i];
UITextField *textField = [[UITextField alloc]init];
textField.tag = i+1;
textField.text = [textFieldDict valueForKey:@"text"];
textField.frame = CGRectMake(posx,posy,textWidth,textHeight);
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventTouchDown];
[self.imageView addSubview:textField];
您可以使用以下代码获取任何文本字段:
UITextField *textField = (UITextField *)[self.imageView viewWithTag:1];
【讨论】:
以上是关于动态生成 UITextFields的主要内容,如果未能解决你的问题,请参考以下文章
如何在动态 UITableView (iPhone) 中处理对 UITextFields 的引用