【问题标题】:Import 495 Cell to TableView将 495 单元格导入 TableView
【发布时间】:2009-12-30 21:38:04
【问题描述】:

我想创建一个包含 495 个单元格的表格视图。
我想用 NSArray 导入单元格,对吗?
如果是的话,如何用简单的代码创建495个单元格?

不是这样的:

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

【问题讨论】:

    标签: ios uitableview


    【解决方案1】:

    您必须在 '-tableView:numberOfRowsInSection:' 方法中返回 495 的值,例如

    - (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 方法中创建数组。

    【讨论】:

      【解决方案2】:

      使用表格要记住的一点是,数据与界面中显示的实际单元格完全分开。数据列表可以任意长,但表格视图将仅显示填充物理屏幕所需的实际单元格。这就是-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。

      【讨论】:

        【解决方案3】:

        不,这不是正确的方法。请参阅UITableViewDataSource 的文档。具体来说,您需要实现 -tableView:numberOfRowsInSection: 和 -tableView:cellForRowAtIndexPath:。

        【讨论】:

          猜你喜欢
          • 2021-04-17
          • 2020-11-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-18
          相关资源
          最近更新 更多