我有一个UITableView,其中我有不同的部分 - 以字母“A”开头的单词转到“A”部分。以字母“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;
}
如何添加不同语言的代码支持?
提前谢谢。
答案 0 :(得分:0)
不同的语言对于如何对单词进行分类会有不同的约定。例如,在日语中,您可能需要10个部分(对于片假名表的每一行)或50个左右来表示每个片假名首字母。我想你需要特殊情况下每种语言的规则。