在TableView中添加NSMutableArray,其中包含一组视图

时间:2010-12-30 14:15:22

标签: iphone ios uitableview uiview nsmutablearray

以下是我要做的事情,我已将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

3 个答案:

答案 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的更多信息:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/occ/cl/UITableViewCell

或者你可以在这里查看表格视图编程指南:

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451-CH1-SW1

答案 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

自动要求其数据源为这些索引路径提供实际的单元视图