Objective-C,UITableView,需要澄清

时间:2011-08-14 20:09:23

标签: objective-c uitableview nsmutablearray

我的程序有2个NSMutableArray,每个都包含一个项目列表。有些成本超过50美元,有些成本低于50美元。任务是将此信息显示为表的一部分。所以..

我的表有2个部分

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 2;
}

每个部分都有一个名称

- (NSString *)tableView:(UITableView *)
     tableView titleForHeaderInSection:(NSInteger)section {

    NSString *lSectionTitle;
    switch (section) {
        case 0:
            lSectionTitle = @"Under $50";
            break;
        case 1:
            ... 

每个部分都有一个计数

-(NSInteger) tableView:(UITableView *)tableView 
     numberOfRowsInSection:(NSInteger)section {    
    NSInteger count= 0;

    switch (section) {
        case 0:
            count =  [[[PossessionStore defaultStore] under50Possessions] count];
            break;
        case 1:
            .....

最后我们弄清楚要显示的内容作为给定单元格的一部分

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];

    if (!cell) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"]autorelease];
    }

    Possession *p = [[[PossessionStore defaultStore] allPossessions] objectAtIndex:[indexPath row]];

    [[cell textLabel] setText:[p description]];

    return cell;
}

上面的代码引用allPossessions,其中包含超过50美元且低于50美元的商品。我被困在这一点上。

在这个例子中,有没有办法让我知道是否要求我为低于或超过50美元的类别绘制一个单元格?

1 个答案:

答案 0 :(得分:1)

  

一切都很好,但我真的不明白UITtable如何“知道”   将低于50美元的商品放入正确的类别。

没有。看起来你可能只是幸运,因为PosessionStore从-allPossessions返回数据的方式是按价格或其他东西组织的财产。在填充每个单元格时,您的-tableView:cellForRowAtIndexPath:方法应该考虑该部分以及行。