以下是我要做的事情,我已将View设置为一个Image和3 Label,每个都相同。
[viewarray addObject:xView]; //view array is NSMutable Array and I am adding 5-6 views
[tblView insertRowsAtIndexPaths:viewarray withRowAnimation:UITableViewRowAnimationFade];
此代码不会产生任何错误,但也不会在表格中添加任何内容。
我做错了什么,如果可能的话请给我一些代码片段来创建Custom UIView
One UIImageView
+ 3 Lables left side Image and right side 3 Labels
答案 0 :(得分:1)
UITableView不使用UIViews作为单元格。它实际上使用UITableViewCell。
方法insertRowsAtIndexPaths:withRowAnimations:
需要一个NSIndex的NSArray。
UITableView中的每个UITableViewCell都对应一个NSIndexPath。 NSIndexPath保存UITableView中特定UITableViewCell的顺序和节号。
例如:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:1];
这将为第1部分的第0行(第一个单元格)创建一个NSIndexPath。
创建NSIndexPath后,您可以使用insertRowsAtIndexPaths:withRowAnimations:
。
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
这将使UITableView调用cellForRowAtIndexPath:
来创建一个新单元格,其中包含您放入NSIndexPath中的信息。
您可以在此处获取有关UITableViewCell的更多信息:
或者你可以在这里查看表格视图编程指南:
答案 1 :(得分:0)
您需要查看UITableView和UITableViewCell信息。
表视图使用UITableViewCell对象来显示单元格。
insertRowsAtIndexPaths方法只是通知UITableView需要添加一些单元格。
这是tableView:cellForRowAtIndexPath:方法(UITableViewDataSource协议),用于设置表格的单元格。
答案 2 :(得分:0)
insertRowsAtIndexPaths:withRowAnimations:
实际上期望第一个参数是索引路径数组,而不是视图。
所以正确的用法就像:
[tblView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:4]] withRowAnimations:UITableViewRowAnimationAutomatic];
在这种情况下,表视图将通过调用- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath