2012-05-14 2 views
2

Я уверен, что этот вопрос задан раньше, но я не смог найти ничего в поиске.UITableView, разделённый буквой, как в списке контактов

У меня есть список названий городов, которые могут меняться в зависимости от выбранной страны. Я хотел бы заказать их в алфавитном порядке и показать их в разделах на основе первой буквы (например, списка контактов).

Как это сделать? Должен ли я вручную создавать все разделы или есть встроенный способ?

Спасибо.

ответ

2

Отсортируйте свой источник данных в том порядке, в котором хотите, а затем перезагрузите табличное представление.

Попробуйте сделать NSDictionary из NSMutableArrays. Возьмите первую букву каждого города, чтобы убрать ее. Затем вставьте свой город в массив для буквы k.

Количество секций = [[NSDictionary AllKeys] число]

NSArray* cityNames = [NSArray arrayWithObject: @"Detroit"]; 

NSMutableDictionary* dataSource = [[NSMutableDictionary alloc] init];  

for(NSString* city_name in cityNames){ 

    NSString* key = [[city_name substringToIndex:1] uppercaseString]; 

    if(![dataSource objectForKey: key]){ 
     [dataSource setObject:[NSMutableArray array] forKey:key]; 
    } 
    [[dataSource objectForKey: key] addObject: city_name]; 
} 

Если вам нужна дополнительная помощь настройке источника данных с Tableview так сказать в комментарии, и я помогу вам больше. Cheers

1

Да, вы должны вручную создать все разделы. И было бы удобно хранить разделы в NSDictionary. Чтобы иметь указатели в виде надписей, просто верните массив из них в sectionIndexTitlesForTableView:

Смежные вопросы