0

私は以下のようなテーブルビューを持っています

ここに画像の説明を入力してください

名前、出生数、300、264などの日数は、さまざまな可変配列から表示されます

私はそれのために次のコードを使用しました

     - (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;

}

今私の質問は、このセルをどのように並べ替えることができるかということです。たとえば、残りの最小日数を最初に、次にそれより2番目に大きくする必要があります。たとえば、25、201、256などのようになります。名前と出生数はデータベースiにあります。それらを配列に保存し、その上でプロセスを作成して、別の配列の残りの日数を見つけます

plzはこれのために何かを提案します

4

3 に答える 3

1

別の配列にデータを格納するよりも、辞書の単一配列を使用してデータを格納する方がよいでしょう。辞書を使用して、名前、残り日数などをキーと値のペアとして保存できます。そして、辞書にアクセスします

NSMutableDictionary *dic = [array objectAtIndex:indexPath.row];
NSString *s = [dic valueForKey@"key"];
于 2013-03-20T06:26:58.070 に答える
1
 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES];
 [_daysremaining sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
于 2013-03-20T06:30:46.243 に答える
1

@ Ab'initioの回答として、名前、DOB、残りの日数を辞書に追加し、その辞書をに追加してNSMutableArray表示しUITableViewます。必要な順序を取得するには、残りの日のキーに基づいて辞書を並べ替える必要があります。辞書から昇順で並べ替えて、必要な順序で結果を取得します。useはNSSortDescriptor便利です。これは、辞書を含む配列を並べ替える方法例です。

于 2013-03-20T06:38:48.820 に答える