Запрос UISearch Bar в iPhone - PullRequest
       2

Запрос UISearch Bar в iPhone

0 голосов
/ 10 ноября 2011

Я делаю приложение карты и уже могу вызвать веб-сервис, который показывает местоположение магазинов на карте с аннотацией. Мой веб-сервис содержит более 200 магазинов в Австралии. Я беру один UISearch бар, в котором, когда я вставляю Сид ....., то Сидней, Австралия, должен открывать вид автозаполнения таблиц. Как я могу добиться этого .. Нужно ли мне снова вызывать веб-сервис Url для автозаполнения адреса tablview, или я должен вставить адрес вручную или есть какой-нибудь метод ???

Отредактировано: = В моем приложении я ищу местоположение магазинов в радиусе 5,10,15 км. И если пользователь хочет другое местоположение вместо текущего, то он может вставить свое любое местоположение, чтобы найти информацию о магазинах вокруг этого вставленного местоположения. Таким образом, когда пользователь вводит свое местоположение, тогда таблица автозаполнения адреса должна открываться

Ответы [ 2 ]

0 голосов
/ 10 ноября 2011

Одним из возможных решений может быть сохранение предопределенных значений в базе данных (Core Data), а затем в textDidChange делегате searchBar вы можете запросить базу данных для поиска списка, если данные соответствуют текущему ключевому слову serach. Полученные таким образом результаты могут быть показаны в виде таблицы с некоторым эффектом анимации, чтобы дать ощущение автоматического предложения.

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

РЕДАКТИРОВАТЬ: Ответ на вопрос, задаваемый в части редактирования вопроса

  1. Вам нужно поставить автоматическое предложение.
  2. Получение данных с сервера (с использованием веб-службы).

Теперь, чтобы обеспечить функциональность предложения адреса, например «Сид», превращающегося в Сидней, Австралия, мой ответ выше поможет вам поместить эти статические адреса в базу данных, а затем предоставит пользователю опции автоматического предложения. Во второй части вы можете сохранить последние / длинные места в базе данных, и как только пользователь завершит свой выбор, вы можете запросить веб-сервис для получения данных.

Шаги можно обобщить как ..

  • Типы пользователей Syd.
  • Вы запрашиваете базу данных для поиска места, которое соответствует Сиду, с помощью некоторого запроса, например place LIKE% syd%.
  • Заполните таблицу автозаполнением с указанием названия места, например Сидней, Австралия.
  • Пользователь выбирает место, соответственно вы выбираете широту / долготу (извлечено вместе с именами в приведенном выше запросе) и запросите свой веб-сервис для получить данные для

Место = Сидни, Австралия (не требуется) Широта = НЕКОТОРАЯ ВАЛЕ для Сиднея Долгота - НЕКОТОРОЕ ЗНАЧЕНИЕ для Сиднея Радиус = 5,10,15 в зависимости от логики вашего приложения

Затем сервер выберет все магазины в заданном диапазоне для определенного широты / долготы.

На стороне сервера может быть выполнена более интенсивная работа по вычислению, а на стороне клиента - меньше вызовов веб-службы, чтобы избежать задержки.

0 голосов
/ 10 ноября 2011

У меня было то же приложение, которое показывало адреса людей, поэтому я использовал веб-сервис, который давал мне все адреса, и я держал их в NSMutableArray, а затем я проверял строку в массиве в функции textDidChange UISearchBar, и если есть какая-либо строка, соответствующая префиксу, тогда я показывал адрес в UISearchBar ... Но в этом случае, если вы написали только 'S', он вернет более одной записи, поэтому вам нужно решить в соответствии с требованиями клиента, как показать хочет ли он список или любую соответствующую запись ... Если список ожидается, вам нужно показать табличное представление, а когда пользователь выбирает значение, просто скрыть табличное представление .....

...