0

只是想知道为什么我们不能通过以下方式将数据源设置为 UITableview,而不是在一种方法中返回数据计数并在不同的方法中返回单元格的数据。

为什么我们不做类似下面的事情?

 UITableView *tableView = [UITableView alloc] init];
 tableView.datasource = [NSArray arrayWithObjects:@"row1", @"row2", nil];
 tableView.cellIdentifier = @"Identifier";
 tableView.cell = [UITableViewCell alloc] init];

 //delegate methods implemented as properties,
 tableView.rowHeight = 50.0;
 tableView.headerHeight = 100.0
 tableView.headerView = [UIView alloc] init];

 [self.view addSubView:tableView];

我们可以正确地做到这一点,可能不是 100% 正确,我们可以考虑添加更多属性以使 TableView 以与现在相同的方式工作。

Whey Apple 以现在的工作方式设计了 TableView。如果有人能用现有设计解释这种设计的优缺点,那将很有帮助。

4

1 回答 1

2

此实现的问题在于,一旦您达到应用程序分配的最大内存级别,您不会获得出队的单元格,这将增加您的设备内存。在每个表格行上,都会创建一个新单元格。

此外,cellForRowIndexPath 方法使您可以灵活地根据行索引路径自定义单元格。

如果您要渲染两个包含不同视图的不同自定义单元格,如何在不使用 cellForRowIndex 委托的方法的情况下区分它们。

于 2013-06-29T09:49:10.983 回答