我是iOS开发的新手。 我想根据条件动态创建UITextFields。条件是,如果我开始在第一个UITextField上键入,它将在底部再创建一个UITextField,并在我开始在第二个上键入时创建第三个UITextField。 同样,如果上层UITextField中没有文本,我想删除底部文本。 任何帮助将不胜感激......
答案 0 :(得分:1)
试试这个
步骤:1在全局
中取消此tagCounter变量 int tagCounter=1;
步骤:2设置您的第一个UITextField标记和委托
[MyFirstTextField setTag:tagCounter];
[MyFirstTextField setDelegate:self];
tagCounter+=1;
步骤:3写下两个方法来创建新的文本字段并删除文本字段
-(void)CreateNewTextField:(float)FromTop withTag:(int)Tag
{
UITextField *NewTextField=[[UITextField alloc] initWithFrame:CGRectMake(0.0f, FromTop, 100.0f, 40.0f)];
[NewTextField setDelegate:self];
[NewTextField setTag:Tag];
[[self view] addSubview:NewTextField];
}
-(void)RemoveTextField:(int)Tag
{
for(UIView *sub in [[self view] subviews])
{
if([sub isKindOfClass:[UITextField class]])
{
if([sub tag]>=Tag)
{
[sub removeFromSuperview];
}
}
}
}
步骤:4使用textField委托方法textFieldDidEndEditing创建新的textField并删除textfield
-(void)textFieldDidEndEditing:(UITextField *)textField
{
if([[textField text] isEqualToString:@""])
{
int CurrentTag=[textField tag];
[self RemoveTextField:CurrentTag+1];
}
else
{
CGRect CurrentTextFieldFrame=[textField frame];
[self CreateNewTextField:CurrentTextFieldFrame.origin.y+CurrentTextFieldFrame.size.height+20.0f withTag:tagCounter];
tagCounter+=1;
}
}
答案 1 :(得分:0)
Here是一个关于如何从代码创建UITextField的教程。
你应该实现它的方法是,添加第一个文本字段,将它的委托设置为self,并在textFieldDidBeginEditing:方法中,创建另一个文本字段,设置它的委托并在其旁边创建一个按钮。如果你想删除它,我建议为UITextField添加相同的标签,并且它是相应的删除UIButton,然后当点击一个按钮时,从superview中删除带有该标签的所有视图。
我建议一步一步地尝试一切: