在包含一组视图的 TableView 中添加 NSMutableArray
Posted
技术标签:
【中文标题】在包含一组视图的 TableView 中添加 NSMutableArray【英文标题】:Add NSMutableArray in TableView Which contains set of Views 【发布时间】:2010-12-30 14:15:22 【问题描述】:这是我想要做的,我设置了一个图像和 3 个标签的视图,每个都是相同的。
[viewarray addObject:xView]; //view array is NSMutable Array and I am adding 5-6 views
[tblView insertRowsAtIndexPaths:viewarray withRowAnimation:UITableViewRowAnimationFade];
这段代码没有给出任何错误,但也没有在表中添加任何内容。
我做错了什么,如果可能的话,请给我代码 sn-p 以创建 Custom UIView
和 One UIImageView
+ 3 个标签左侧图像和右侧 3 个标签
【问题讨论】:
【参考方案1】:UITableView 不使用 UIViews 作为单元格。它实际上使用了 UITableViewCell。
insertRowsAtIndexPaths:withRowAnimations:
方法需要一个 NSArray 的 NSIndexPath。
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
【讨论】:
【参考方案2】:你需要查看 UITableView 和 UITableViewCell 信息。
表格视图使用 UITableViewCell 对象来显示单元格。
insertRowsAtIndexPaths 方法只是通知 UITableView 需要添加一些单元格。
是tableView:cellForRowAtIndexPath:方法(UITableViewDataSource协议的),用于设置表格的单元格。
【讨论】:
【参考方案3】:insertRowsAtIndexPaths:withRowAnimations:
实际上期望第一个参数是索引路径数组,而不是视图。
所以正确的用法应该是这样的:
[tblView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:4]] withRowAnimations:UITableViewRowAnimationAutomatic];
在这种情况下,表格视图将通过调用- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
自动要求其数据源为这些索引路径提供实际的单元格视图
【讨论】:
以上是关于在包含一组视图的 TableView 中添加 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章
将 UISearchBar 作为子视图添加到 tableView 标题中
如何在 Tableview 单元格中获取 UIButton 的位置,并在 Swift 中添加目标?