按特定顺序排列单元格

时间:2013-03-20 06:19:32

标签: ios tableview cell

我有如下表格视图

enter image description here

姓名,出生率和天数(如300,264)将从不同的Mutable数组中显示

我使用了以下代码

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


   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];

    UIView *selectionView = [[UIView alloc] initWithFrame:CGRectMake(0, 7, 320, 50)];
    [selectionView setBackgroundColor: [UIColor clearColor]];

    UILabel *callTypeLabel = [[UILabel alloc]initWithFrame:CGRectMake(5, 0, 150, 21)];
    callTypeLabel.text = (NSString *)[_combinedNameArray objectAtIndex:[indexPath row]];
    callTypeLabel.backgroundColor = [UIColor clearColor];
    callTypeLabel.font = [UIFont boldSystemFontOfSize:15.0];
    [selectionView addSubview:callTypeLabel];

    UILabel *daystogo = [[UILabel alloc]initWithFrame:CGRectMake(200 , -2, 125, 30)];

    daystogo.text = @"days to go";
    daystogo.backgroundColor = [UIColor clearColor];
    daystogo.font = [UIFont boldSystemFontOfSize:14.0];
    [selectionView addSubview:daystogo];

   UILabel *days = [[UILabel alloc]initWithFrame:CGRectMake(174 , -2, 125, 30)];
   days.text = [NSString stringWithFormat:@"%@",[_daysremaining objectAtIndex:[indexPath row]]];
   days.backgroundColor = [UIColor clearColor];
   days.font = [UIFont boldSystemFontOfSize:14.0];
   [selectionView addSubview:days];

   UILabel *birthdate = [[UILabel alloc]initWithFrame:CGRectMake(5 , 22, 150, 21)];
   birthdate.text = [NSString stringWithFormat:@"%@",[_combinedBirthdates objectAtIndex:   [indexPath row]]];
   birthdate.backgroundColor = [UIColor clearColor];
   birthdate.font = [UIFont boldSystemFontOfSize:14.0];
   [selectionView addSubview:birthdate];

   [[cell viewWithTag:0] addSubview:selectionView];


return cell;

}

现在我的问题是我如何重新排序这些单元格,就像最小的日子应该是第一个,然后第二个比它大,等等          它应该是这样的          25,          201,          256,          等等 名称和出生率在数据库中我将​​它们保存在数组中并对其进行处理以查找另一个数组中的重新生成日期

plz为此提出建议

3 个答案:

答案 0 :(得分:1)

我最好使用sigle数组字典来存储数据,而不是将其存储在不同的数组中。您可以使用字典存储名称,剩余天数等作为键值对。 并访问字典

NSMutableDictionary *dic = [array objectAtIndex:indexPath.row];
NSString *s = [dic valueForKey@"key"];

答案 1 :(得分:1)

 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES];
 [_daysremaining sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

答案 2 :(得分:1)

在@ Ab'initio的回答中,将姓名,DOB和剩余天数添加到字典中,然后将该字典添加到NSMutableArray并显示到UITableView,好的,以获得您想要的订单,你需要根据字典中的剩余日期密钥对字典进行整理,按升序对其进行排序,以便按照你想要的顺序得到结果,使用NSSortDescriptor可能很有用, here's如何对数组进行排序的示例包含字典。