J'ai un UITableView, et j'ai différentes sections - les mots qui commencent par la lettre "A" vont à la section "A". Les mots commençant par la lettre "B" vont à la section "B" et ainsi de suite.Comment faire des en-têtes de section dans plusieurs langues
Voici mon code:
-(void) populateTable {
if (tableDataArray)
{
[tableDataArray removeAllObjects];
}
for (int i = 0; i <= 27; i++)
{
NSMutableArray *words_in_section = [ [NSMutableArray alloc] init];
[tableDataArray addObject: words_in_section];
[words_in_section release];
}
int cur_section;
int cur_word_id;
//First section, without title
while ((cur_word_id = [ [WordsDatabase sharedWordsDatabase] getNextWordToEditIDABC]) != -1)
{
NSMutableArray *temp_array = [tableDataArray objectAtIndex: 0];
[temp_array addObject: [NSNumber numberWithInt: cur_word_id] ];
[tableDataArray replaceObjectAtIndex: 0 withObject:temp_array];
}
//All other sections
while ((cur_word_id = [ [WordsDatabase sharedWordsDatabase] getNextWordIDABC]) != -1)
{
cur_section = toupper([ [ [WordsDatabase sharedWordsDatabase] getWordAtID:cur_word_id] characterAtIndex:0 ]) - 'A';
if (cur_section < 0) cur_section = 27;
else if (cur_section > 27) cur_section = 27;
else cur_section++;
NSMutableArray *temp_array = [tableDataArray objectAtIndex:cur_section];
[temp_array addObject: [NSNumber numberWithInt: cur_word_id] ];
[tableDataArray replaceObjectAtIndex:cur_section withObject:temp_array];
}
[mainTableView reloadData];
}
Je veux obtenir quelque chose de similaire à la liste de musique iPod - il y a des chansons qui sont classées par ordre alphabétique et la partie la plus intéressante est que la liste prend en charge à part toutes les autres langues de Anglais.
Comment puis-je y parvenir? Mon code ne fonctionne qu'avec des lettres anglaises et toutes les autres lettres sont attribuées à une dernière section.
Voici comment je définir les vues d'en-tête:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if ([ [tableDataArray objectAtIndex: section] count] == 0) return nil;
UITableViewCell *header_view = [ [ [UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 20)] autorelease];
header_view.backgroundColor = [UIColor orangeColor];
UILabel *captionLabel = [ [ [UILabel alloc] initWithFrame: CGRectMake(10, 0, 290, 20)] autorelease];
captionLabel.backgroundColor = [UIColor orangeColor];
[header_view addSubview: captionLabel];
if (section == 0)
{
return nil;
} else if (section >= 27)
{
captionLabel.text = @"#";
return header_view;
} else
{
captionLabel.text = [NSString stringWithFormat: @"%c", section + 'A' - 1];
return header_view;
}
return nil;
}
Comment puis-je ajouter à mon soutien de code des langues différentes?
Merci d'avance.