2013-06-29 75 views
0

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

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

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它的工作原理现在以同样的方式。

乳清苹果公司以它现在的工作方式设计了TableView。如果有人能够用现有设计解释这种设计的优点和缺点,那么有用。

+0

我有时为自己的类做了类似的事情,而不是实现数据源和委托方法。我想知道为什么。 – John

回答

2

这个实现的问题在于,当你达到应用程序分配的最大内存级别时,你并没有获得将你的设备内存激增的单元。在每个表格行上,都会创建一个新的单元格。

此外cellForRowIndexPath方法为您提供了基于行索引路径自定义单元格的灵活性。

如果您渲染包含不同视图的两个不同自定义单元,如何区分它们而不使用cellForRowIndex委托方法?

+0

同意你关于出列的第一点。但是对于你的第二点,我认为对于不同的行索引路径,可以将不同的海关单元存储在Array中作为要在TableView中设置的属性? – John