У меня есть UITableView, и в нем у меня есть разные разделы - слова, начинающиеся с буквы «А», переходят в раздел «А». Слова, начинающиеся с буквы "B", переходят в раздел "B" и т. Д.
Вот мой код:
-(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];
}
Я хочу добиться чего-то похожего на список музыки iPod - есть песни, отсортированные по алфавиту, и самое интересное, что список поддерживает все другие языки, кроме английского.
Как мне этого добиться? Мой код работает только с английскими буквами, а все остальные буквы присваиваются последнему разделу.
Вот как я устанавливаю заголовки:
- (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;
}
Как я могу добавить в свой код поддержку разных языков?
Заранее спасибо.