我看过很多关于在表格视图中添加和删除单元格的帖子。我想要的是当用户单击单元格中的添加按钮时,它必须询问用户在该单元格中输入什么文本,然后用户在单元格中输入文本,然后将其添加到表格视图中。谁能告诉我如何做到这一点?
3 回答
我会将添加按钮放在页脚或页眉中,而不是放在单元格中,我个人认为管理单元格的添加会更容易。
除此之外,不确切知道您的问题是什么,如果您将控制器设置为合适的委托,那么您可以通过访问所有相关方法轻松添加或删除单元格,特别是那个:
- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleInsert) {
// ......
}
}
由以下方式调用:
[yourTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath ] withRowAnimation:UITableViewRowAnimationAutomatic];
有一个类似的方法(UITableViewCell *) createNewCellForTableView
。这将创建并返回 UITableViewCell。
在您CellForRowAtIndexPath
使用此方法为您的tableView
. 这需要以这种方式完成,因为当您执行时,[tableView reloadData];
每次添加新单元格时都需要创建新单元格。
最后,在创建新单元格后,在ADD
按钮的 IBAction 中,确保重新加载 tableView。
〜一个更简单的选择:
由于您只是在寻找用户添加文本,因此您可以textField
在 uitableViewcell 中嵌入一个。用户完成输入后,您可以将文本添加到dataSource
(填充 的数组tableView
)并重新加载 tableView。确保你有 textFieldenabled
或disabled
你想要的。
这就是我的做法,它的工作原理:
首先,创建一个实例变量,如下所示:
int numRows = 0;
实现方法numberOfRowsInSection
如下:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return numRows;
}
现在在我的应用程序中,在一个地方,我正在使用 REST API 并获取 JSON,我将 numRows 的值更新为numRows = [jsondata count];
cellForRowAtIndexPath
如果您有动态内容,请按照您希望的方式编写您的方法。例如,在我的情况下,我正在使用 indexPath.row 并准备单元格并返回它。
仅当变量 numRows 大于 0 时才会调用此方法。因此,一旦您拥有动态内容,请按照我上面的说明更新 numRows 的内容并立即调用该方法[YourtableView reloadData];