2009-12-30 53 views
0

我想創建一個包含495個單元格的表格視圖。
我想用NSArray導入單元格,對嗎?
如果是的話,怎樣才能用簡單的代碼創建495單元格?將495單元格導入到TableView中

不喜歡這樣的:

@"Cell 1" @ "cell 2" @"cell 3", @"cell 4", @"cell 5" ............. @"cell 495" 

回答

3

你將不得不返回495的值「-tableView:numberOfRowsInSection:」像法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSLog(@"Returning num rows"); 
    return 495; 
} 

然後填充表與陣列

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
    } 
NSUInteger row = [indexPath row]; 
    cell.text = [array objectAtIndex:row]; 
     return cell; 
} 

在這裏,我假設你正在將文本數據存儲在單元格中。 也在viewDidLoad方法中創建數組。

+0

謝謝你......我用plist屬性導入我的細胞 – Momi 2009-12-31 21:35:58

1

不,這不是正確的方法。請參閱UITableViewDataSource的文檔。具體來說,您需要實現-tableView:numberOfRowsInSection:和-tableView:cellForRowAtIndexPath :.

2

用表格記住的事情是數據和界面中顯示的實際單元之間存在完全分離。數據列表可以任意長,但tableview將只顯示填充物理屏幕所需的實際單元格數量。這是-tableView:cellForRowAtIndexPath:的用途。該表跟蹤哪些行實際上對用戶可見,然後向數據源提供僅用於顯示行的數據。

您可以使用NSArray來保存數據,填充數組的最簡單方法是從文件中讀取數據。您可以使用/Developer/Applications/Utilities/Property List Editor.app(標準開發人員工具的一部分)創建一個plist文件,NSArray可以直接使用initWithContentsOfFile:讀取該文件。 (如果你只是想創建一個長長的數據列表來進行試驗,你可以使用NSMutableArray並用循環填充它。)

在你的情況下,你有495個條目,但表格只會顯示大約9個單元格一段時間(只是簡單的默認文本單元格)。在開始時它將顯示索引爲0-8的表格。該表將通過-tableView:cellForRowAtIndexPath: 9次,每次通過一個索引即0,1,2 ... 7,8。然後,您的方法將在該索引處找到數組中的對象,例如[myArray objectAtIndex:index]。用戶滾動時,索引通過更改。當顯示行300-308時,傳遞的索引是300,301,... 307,308。