单击按钮时将单元格动态添加到 UItableview
Posted
技术标签:
【中文标题】单击按钮时将单元格动态添加到 UItableview【英文标题】:Adding cells dynamically to UItableview when Button clicks 【发布时间】:2013-03-11 06:37:09 【问题描述】:我有 2 个 UITextField 和一个按钮,当我在填充这些按钮后单击按钮时,我必须在表格视图单元格中以相同格式获取 UItextfields 和按钮,当我填充这些并单击按钮时,必须将相同的文本字段添加到下一个单元格,保持上述内容单元格相同,并且文本字段中的数据也不会被删除
我是这个编程的新手,我不知道如何在单击按钮时向单元格添加视图 帮我解决这个问题。
-(IBAction)btnaddbusiness:(UIButton*)sender
tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 370, 300, 30)];
tableView.delegate=self;
tableView.dataSource=self;
[testscroll addSubview:tableView];
i=i+1;
if(sender.tag==1 || i==1)
if([txtprovEmail1.text isEqualToString:@""] && [txtprovName1.text isEqualToString:@""])
else
testscroll.contentSize=CGSizeMake(320, 500);
view1=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 300, 30)];
txtprovName2 =[[UITextField alloc]init];
[txtprovName2 setFrame:CGRectMake(0,0,116, 30)];
[txtprovName2 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovName2 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovName2.textAlignment=UITextAlignmentCenter;
txtprovName2.placeholder=@"Provider Name";
txtprovName2.font=[UIFont fontWithName:@"System" size:11];
txtprovName2.userInteractionEnabled=YES;
[view1 addSubview:txtprovName2];
txtprovEmail2 =[[UITextField alloc]init];
[txtprovEmail2 setFrame:CGRectMake(130, 0,116, 30)];
[txtprovEmail2 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovEmail2 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovEmail2.textAlignment=UITextAlignmentCenter;
txtprovEmail2.placeholder=@"Provider Email";
txtprovEmail2.font=[UIFont fontWithName:@"System" size:11];
txtprovEmail2.userInteractionEnabled=YES;
[view1 addSubview:txtprovEmail2];
btnRemove1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnRemove1.frame = CGRectMake(268, 0,80, 30);
[btnRemove1 setTitle:@"Remove" forState:UIControlStateNormal];
[btnRemove1.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
// [ btnRemove1 setBackgroundImage:[UIImage imageNamed:@"background-button.png"] forState:UIControlStateNormal];
btnRemove1.titleLabel.textColor=[UIColor blackColor];
btnRemove1.tag=1;
// [btnRemove1 addTarget:self action:@selector(btnRemove1Clicked) forControlEvents:UIControlEventTouchUpInside];
[ view1 addSubview: btnRemove1];
/* btnsubmit = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnsubmit.frame = CGRectMake(40, 470,80, 30);
[btnsubmit setTitle:@"Submit" forState:UIControlStateNormal];
[btnsubmit.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
btnsubmit.titleLabel.textColor=[UIColor blackColor];
[btnsubmit addTarget:self
action:@selector(btnsubmitclicked)
forControlEvents:UIControlEventTouchUpInside];
[ testscroll addSubview: btnsubmit];*/
/*
btnreset = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnreset.frame = CGRectMake(100, 470,80, 30);
[btnreset setTitle:@"Reset" forState:UIControlStateNormal];
[btnreset.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
btnreset.titleLabel.textColor=[UIColor blackColor];
[btnreset addTarget:self
action:@selector(btnResetclicked)
forControlEvents:UIControlEventTouchUpInside];
[ testscroll addSubview: btnreset];
*/
sender.tag=2;
else if(sender.tag==2|| i==2)
if(txtprovEmail2.text==NULL && txtprovName2.text==NULL)
else
testscroll.contentSize=CGSizeMake(320, 600);
testscroll.pagingEnabled=YES;
view2=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 300, 30)];
txtprovName3 =[[UITextField alloc]init];
[txtprovName3 setFrame:CGRectMake(20, 470,94, 30)];
[txtprovName3 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovName3 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovName3.textAlignment=UITextAlignmentCenter;
txtprovName3.placeholder=@"Provider Name";
txtprovName3.font=[UIFont fontWithName:@"System" size:11];
txtprovName3.userInteractionEnabled=YES;
[view2 addSubview:txtprovName3];
txtprovEmail3 =[[UITextField alloc]init];
[txtprovEmail3 setFrame:CGRectMake(118, 470,92, 30)];
[txtprovEmail3 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovEmail3 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovEmail3.textAlignment=UITextAlignmentCenter;
txtprovEmail3.placeholder=@"Provider Email";
txtprovEmail3.font=[UIFont fontWithName:@"System" size:11];
txtprovEmail3.userInteractionEnabled=YES;
[view2 addSubview:txtprovEmail3];
btnRemove2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnRemove2.frame=CGRectMake(210, 470, 80, 30) ;
[btnRemove2 setTitle:@"Remove" forState:UIControlStateNormal];
[btnRemove2.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
// [ btnRemove1 setBackgroundImage:[UIImage imageNamed:@"background-button.png"] forState:UIControlStateNormal];
btnRemove2.titleLabel.textColor=[UIColor blackColor];
/* [btnRemove2 addTarget:self action:@selector(btnRemove2Clicked)
forControlEvents:UIControlEventTouchUpInside];*/
btnRemove2.tag=2;
[view2 addSubview:btnRemove2];
[btnreset removeFromSuperview];
[btnsubmit removeFromSuperview];
[ btnsubmit setFrame:CGRectMake(80, 510, 50, 30)];
[btnreset setFrame:CGRectMake(80, 510, 50, 30)];
sender.tag=3;
else if(sender.tag==3 || i==3)
if(txtprovEmail3.text==NULL && txtprovName3.text==NULL)
else
testscroll.contentSize=CGSizeMake(320, 700);
txtprovName4 =[[UITextField alloc]init];
[txtprovName4 setFrame:CGRectMake(20, 510,94, 30)];
[txtprovName4 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovName4 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovName4.textAlignment=UITextAlignmentCenter;
txtprovName4.placeholder=@"Provider Name";
txtprovName4.font=[UIFont fontWithName:@"System" size:11];
txtprovName4.userInteractionEnabled=YES;
[testscroll addSubview:txtprovName4];
txtprovEmail4 =[[UITextField alloc]init];
[txtprovEmail4 setFrame:CGRectMake(118, 510,92, 30)];
[txtprovEmail4 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovEmail4 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovEmail4.textAlignment=UITextAlignmentCenter;
txtprovEmail4.placeholder=@"Provider Email";
txtprovEmail4.font=[UIFont fontWithName:@"System" size:11];
txtprovEmail4.userInteractionEnabled=YES;
[testscroll addSubview:txtprovEmail4];
btnRemove3 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnRemove3.frame = CGRectMake(210, 510,80, 30);
[btnRemove3 setTitle:@"Remove" forState:UIControlStateNormal];
[btnRemove3.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
// [ btnRemove1 setBackgroundImage:[UIImage imageNamed:@"background-button.png"] forState:UIControlStateNormal];
btnRemove3.titleLabel.textColor=[UIColor blackColor];
[btnRemove3 addTarget:self action:@selector(btnRemove3Clicked)
forControlEvents:UIControlEventTouchUpInside];
btnRemove3.tag=3;
[testscroll addSubview:btnRemove3];
[btnreset removeFromSuperview];
[btnsubmit removeFromSuperview];
[ btnsubmit setFrame:CGRectMake(40, 550, 50, 30)];
[btnreset setFrame:CGRectMake(100, 550, 50, 30)];
sender.tag=4;
else if(sender.tag==4||i==4)
if(txtprovEmail4.text==NULL && txtprovName4.text==NULL)
else
testscroll.contentSize=CGSizeMake(320, 800);
txtprovName5 =[[UITextField alloc]init];
[txtprovName5 setFrame:CGRectMake(20, 550,94, 30)];
[txtprovName5 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovName5 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovName5.textAlignment=UITextAlignmentCenter;
txtprovName5.placeholder=@"Provider Name";
txtprovName5.font=[UIFont fontWithName:@"System" size:11];
txtprovName5.userInteractionEnabled=YES;
[testscroll addSubview:txtprovName5];
txtprovEmail5 =[[UITextField alloc]init];
[txtprovEmail5 setFrame:CGRectMake(118, 550,92, 30)];
[txtprovEmail5 setBorderStyle:UITextBorderStyleRoundedRect];
[txtprovEmail5 setAutocorrectionType:UITextAutocorrectionTypeNo];
txtprovEmail5.textAlignment=UITextAlignmentCenter;
txtprovEmail5.placeholder=@"Provider Email";
txtprovEmail5.font=[UIFont fontWithName:@"System" size:11];
txtprovEmail5.userInteractionEnabled=YES;
[testscroll addSubview:txtprovEmail5];
btnRemove4 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnRemove4.frame = CGRectMake(210, 550,80, 30);
[btnRemove4 setTitle:@"Remove" forState:UIControlStateNormal];
[btnRemove4.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
// [ btnRemove1 setBackgroundImage:[UIImage imageNamed:@"background-button.png"] forState:UIControlStateNormal];
btnRemove4.titleLabel.textColor=[UIColor blackColor];
[btnRemove4 addTarget:self action:@selector(btnRemove4Clicked)
forControlEvents:UIControlEventTouchUpInside];
btnRemove4.tag=4;
[testscroll addSubview:btnRemove4];
testscroll.scrollEnabled=YES;
[btnreset removeFromSuperview];
[btnsubmit removeFromSuperview];
[ btnsubmit setFrame:CGRectMake(40, 690, 50, 30)];
[btnreset setFrame:CGRectMake(100, 690, 50, 30)];
【问题讨论】:
尝试在自定义的uitableviewcell上搜索google.co.in/… 当 addbutton 被点击时,我想向 tableviewcell 添加另一个视图,这样我如何使用标签动态添加单元格 您可以添加您的视图并将其隐藏在开头,当单击按钮时重新加载您的表格并根据条件设置隐藏为 false。 查看我的编辑问题。我想将这些功能添加到表格视图中,我该怎么做 【参考方案1】:您可以从here下载示例应用程序
以下链接也会对您有所帮助。
UITextField in UITableViewCell Help
How to put a UITextField inside of a UITableViewCell (grouped)?
编辑:
您只需重新加载 ([tablename reloadData];
) -(IBAction)btnaddbusiness:(UIButton*)sender
中的表格。
添加你正在做的视图应该在rowForIndexPath:
。
您可以做的是在您的函数中将一个变量 boolean 设置为 TRUE 并 reload 您的表,然后在 rowForIndexPath
中检查如果该变量为 true,则将您的视图的 hidden 属性设置为 False,反之亦然。
【讨论】:
我怎样才能将它添加到单元格中的各个行以用于索引路径处的行 您可以在 rowForIndexPath 中创建 txtprovName2 并将其添加到您的行中,例如[cell.contentView addSubview: txtprovName2];
以上是关于单击按钮时将单元格动态添加到 UItableview的主要内容,如果未能解决你的问题,请参考以下文章
如何为用户输入文本时将动态创建的每个单元格设置按钮操作(Swift 4)?
当所有单元格都是静态的时将单元格添加到 UITableView(在情节提要中设计)
如何通过按下 iPhone 中的按钮将行/单元格动态添加到 UITableView