Как создать полосу прокрутки в стиле словаря для iPhone (как в списке контактов)? - PullRequest
1 голос
/ 31 марта 2009

Я создаю приложение для iPhone, которое я хотел бы иметь интерфейс, подобный интерфейсу нативного средства выбора контактов iPhone, то есть алфавитный список, который можно прокручивать, с панелью поиска вверху, которая сужает список. В частности, я хотел бы иметь возможность показывать буквы алфавита вниз, чтобы при прокрутке списка вы видели свою позицию в алфавите на полосе прокрутки. Проблема в том, что мои данные в основном состоят из пар ключ-значение, а не контактных данных, поэтому я не могу легко использовать собственный сборщик контактов.

Насколько я вижу, у меня есть два варианта для достижения того, чего я хочу:

  1. Используйте класс ABPeoplePickerNavigationController и взломайте его, чтобы использовать адресную книгу, которую я сам заполняю данными неадресного типа. Проблема заключается в том, что по умолчанию адресная книга будет заполняться контактами с iPhone, поэтому при каждом открытии приложения мне придется сбрасывать эти контакты и создавать свой собственный список. (Не говоря уже о других проблемах, связанных с использованием интерфейса, который связан с определенной структурой данных)
  2. Используйте UISearchBar и UIScrollView. Это было бы хорошо, но я не уверен, как сделать что-либо с полосой прокрутки, кроме как изменить ее цвет - я не вижу, как переопределить ее содержимое.

Какой совет по простейшему пути? Какие подводные камни (особенно 1)?

Ответы [ 2 ]

2 голосов
/ 31 марта 2009

Чтобы получить буквы в стороне, вы можете просто предоставить -sectionIndexTitlesForTableView: метод в вашем источнике данных табличного представления. Что касается поиска, там немного больше работы, и это очень зависит от ваших данных. Тем не менее, UISearchBar - это то место, с которого нужно начинать.

0 голосов
/ 08 мая 2009

Для панели поиска взгляните на TTSearchBar в библиотеке Three20 .

Все остальное можно легко реализовать с помощью UITableView.

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