我想创建具有不同对象名称的动态UITextField.我已经显示了下面的代码,用于动态创建文本字段.如何创建具有不同对象名称的每个文本字段?
for (int x=0; x < 4 ; x++)
{
CGRect txtFldFrame;
if (x==0)
txtFldFrame=CGRectMake(385, 620, 278, 45);
else
txtFldFrame=CGRectMake(385, txtFldFrame.origin.y+60, 278, 45);
[self createTxtImg:txtImgFrame createTextfield:txtFldFrame];
}
Run Code Online (Sandbox Code Playgroud)
在createTextfield:(CGRect)txtfldframe {
UITextField *txtFld1=[[UITextField alloc]init];
txtFld1.frame=txtfldframe;
[txtFld1 setTag:textChk];
txtFld1.borderStyle = UITextBorderStyleNone;
txtFld1.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
txtFld1.textAlignment=UITextAlignmentLeft;
txtFld1.textColor=[UIColor colorWithRed:17/255.0 green:61/255.0 blue:83/255.0 alpha:1];
txtFld1.font = [UIFont systemFontOfSize:22];
txtFld1.backgroundColor = [UIColor clearColor];
txtFld1.autocorrectionType = UITextAutocorrectionTypeNo;
txtFld1.returnKeyType = UIReturnKeyDone;
txtFld1.clearButtonMode = UITextFieldViewModeWhileEditing;
txtFld1.autocapitalizationType=UITextAutocapitalizationTypeNone;
txtFld1.delegate = self;
[subScrollView addSubview:txtFld1];
Run Code Online (Sandbox Code Playgroud)
}
绝对没有理由创建具有不同(唯一名称)的文本字段.我很确定你想要这个唯一名称的原因是,你可以在以后的代码中访问它们并编辑它们的值,但是这里有一个技巧:使用唯一的标签号.
这是一个例子:
for (int i=0; i<4; i++) {
UITextField *myTextfield = [[UITextField alloc] initWithFrame:CGRectZero];
myTextField.tag = 200+i;
[self.view addSubview:myTextField];
}
Run Code Online (Sandbox Code Playgroud)
现在我们创建了4个文本字段,其中包含标签200,201,202和203
稍后在我们想要引用第二个文本字段的代码中,我们所要做的就是:
UITextField *myTextField = (UITextField *)[self.view viewWithTag:201];
Run Code Online (Sandbox Code Playgroud)
现在我们有控制权,我们可以得到或设置任何东西......
作为预防措施,我建议您通过使用以下方法检查您是否真正获得了UI元素:
if (!myTextField)
return;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |