我正在做一个项目,其中我有一个TableView,其中我有不同的Rows / Cell,每个单元格中都有一个添加按钮。我需要做的是单击添加按钮,新行应该添加到我单击按钮的行的下方,这意味着我必须将一个单元格添加到行上所选按钮的下一个。用户也可以输入新行上的文字。请告诉我怎么做。因为我是iPhone开发的新手。我会非常感激....
这是一个单击按钮功能,我想在其中执行添加新单元格的操作。
- (IBAction)AddButtonAction:(id)sender
{
[_choices insertObject:@"avav" atIndex:[_choices count]];
[self.tableView reloadData];
NSLog(@"here");
}
答案 0 :(得分:2)
使用此委托方法在所选行下方添加新行。并使用自定义单元格在其上有一个文本字段...
rowCount ++;//Here rowcount refers the no. of rows in the table.
selectedIndexPath = indexPath;//Assign the selected indexpath for creating custom cell on it.
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationBottom];//Indexpath refers the currently selected/targeted cell.
在cellforRowAtIndexPath中使用如下
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if((selectedIndexPath) && (indexPath.row == selectedIndexPath.row) && (indexPath.section == selectedIndexPath.section))
{
static NSString *cellIdentifier=@"cell";
NewCell *cell = (NewCell *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
{
NSString *customeCellName = [NSString stringWithFormat:@"%@",[NewCell class]];
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:customeCellName owner:self options:nil];
for (id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[UITableViewCell class]])
{
cell = (NewCell *) currentObject;
break;
}
}
}
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
return cell;
}
else
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"%d",indexPath.row];
// Configure the cell...
return cell;
}
}
OutPut会是这样的
需要根据您的要求进行定制。
答案 1 :(得分:0)
我认为你在所有细胞中都有textfeild。在AddButtonAction函数中保存行的索引。创建单元格时,选择单元格textfeild firstresponder。用户输入数据后将其保存在数组中并再次重新加载。只需正确跟踪selectedIndex即可。 感谢这会有所帮助。
答案 2 :(得分:0)
如果按addSubview
方法向单元格添加按钮,只需使用以下代码获取indexPath:
- (IBAction)AddButtonAction:(id)sender
{
UIButton *button = (UIButton *)sender;
UITableViewCell *cell = (UITableViewCell *)[button superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
// Adding methods comes here...
}
如果您使用的是某些addSubview
级别,则应使用相同的superview
方法反向访问UITableViewCell级别。如果使用自定义单元格,请在上面的代码中用UITableViewCell替换自定义单元格类名。
要添加单元格,请查看WWDC 2011 Videos,“UITableView更改,提示和技巧”视频。它显示了一些好的和有用的方法来插入,删除和重新加载其他行/部分之间的新行/部分,如insertRowsAtIndexPaths:withRowAnimation:
方法。或者查看Apple Documents。