2013-06-29 66 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