2009-12-30 70 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。