动态添加新的tableview单元格
我见过很多关于在tableview中添加和删除单元格的文章。我想要的是,当用户单击单元格中的添加按钮时,它必须询问用户在该单元格中输入文本的内容,然后用户在单元格中输入文本,然后将其添加到tableview中。任何人都可以告诉我如何做到这一点?动态添加新的tableview单元格
我会将添加按钮放在页脚或页眉中,而不是在单元格中,我个人认为管理单元格的添加会更容易。
从这个除此之外,不知道你到底是什么问题,如果你让你的控制器uitable委托,那么你可以轻松地添加或通过访问所有相关的方法去除细胞,特别是那一句:
- (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。
〜一个简单的选择:
既然你只是为用户添加文本,您可以嵌入的UITableViewCell一个textField
。只要用户输入完毕,就可以将文本添加到dataSource
(该数组填入tableView
)并重新加载tableView。确保你有你想要的textField enabled
或disabled
。
我这是怎么做到这一点,它的工作原理:
第一,创建一个实例变量,如下所示:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return numRows;
}
现在:
int numRows = 0;
如下实施方法numberOfRowsInSection
我的应用程序,在一个地方,我使用REST API并获得JSON,我将numRows的值更新为numRows = [jsondata count];
如果您有动态内容,请根据需要编写您的方法cellForRowAtIndexPath
。例如在我的情况下,我使用indexPath.row并准备单元格并将其返回。
这种方法只会调用当变量是numRows行大于0所以只要你有你的动态内容,如我上面所解释的更新的numRows行的内容,并立即调用该方法[YourtableView reloadData];
我不认为我理解工作流程。你说“用户点击单元格中的添加按钮”,并且“然后它被添加到tableview中”,但是,如果有一个包含按钮的单元格,它必须已经在表格中。 – 2012-04-10 12:25:47
是的。添加按钮已经存在于默认文本的单元格中。当用户点击添加按钮时,用户必须能够编辑该特定单元格中的文本。当用户在该单元格中输入文本后,必须添加另一个单元格并添加按钮并且具有默认文本。 – 2012-04-10 12:38:10