Отображать элементы в UITableView как контакты iPhone, разделенные на алфавитные секции? - PullRequest
2 голосов
/ 24 января 2012

Я искал в Интернете решение этой проблемы, но, похоже, ничего не могу найти, и я застрял.

У меня есть NSMutableArray:

productsToDisplay

Состоит из кучи объектов Product, каждый из которых имеет атрибут 'name', например,

Product *product = ....

NSLog(@"%@", product.name);

В каждой ячейке отображается название продукта и при нажатии отображается дополнительная информация о продукте.

Однако у меня много продуктов, и я хотел бы разделить их на алфавитные разделы в UITableView (как это делают контакты на вашем iPhone).

Может ли кто-нибудь указать мне правильное направление?

Большое спасибо,

Джек

[ПРАВИТЬ] Я понимаю, что могу просто отсортировать массив по атрибуту имени, но мне также хотелось бы, чтобы панель быстрого поиска работала внизс правой стороны UITableView, так что пользователь может легко найти раздел, который он ищет.

Ответы [ 2 ]

4 голосов
/ 24 января 2012

используйте этот делегат для отображения списка секций справа: -

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    return searchArray; 
}

используйте этот делегат для связывания содержимого таблицы (раздела) в соответствии с правым списком: -

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
    if (index == 0) {
    [tableView scrollRectToVisible:[[tableView tableHeaderView] bounds] animated:NO];
        return -1;
    }
    return index;
}
3 голосов
/ 24 января 2012

Добавьте буквенные разделы к вашему табличному представлению, затем вам нужно создать массив алфавитов, соответствующих разделу в табличном представлении. Например, раздел [0] - «A», раздел [1] - «B» и т. Д.

Добавить - (NSArray *) sectionIndexTitlesForTableView: (UITableView *) tableView { ключи возврата; } // делегат запрашивает массив значений для отображения в индексе.

Таким образом, первый элемент в этом массиве приведет пользователя к первому разделу, который является разделом 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...