iPhone - панель поиска в нескольких текстовых полях - PullRequest
10 голосов
/ 05 декабря 2009

Я реализую поиск по ключевым словам на основе местоположения. Если кто-то видел панель поиска Yelp, это то, что я пытаюсь сделать. В основном, когда нажата панель поиска, я хочу предоставить одно текстовое поле для ввода ключевого слова, а другое - для местоположения. Какой элемент пользовательского интерфейса я бы подкласс? Как бы я пошел по этому поводу?

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

Реализация Yelp выглядит как пользовательское представление с двумя объектами UITextField, с анимацией перевода и масштабирования, чтобы сделать его увеличенным сверху. Табличное представление добавляется в иерархию после завершения анимации. Клавиатура вызывается при первом ответе на одно из текстовых полей.

Кстати, вообще говоря, составление элементов пользовательского интерфейса предпочтительнее, чем создание подклассов.

2 голосов
/ 08 февраля 2011

Я тоже делал похожее приложение, довольно давно.
В моем приложении я выполнял следующие действия (я даю только краткое описание, а не часть кода):

Первоначальный вид:

  • Я использовал панель поиска, вставленную в панель навигации. (Я сделал это программно в viewDidLoad моего класса).
  • В моем xib-файле этого класса я поместил вид сверху и в него поместил два UITextFields один ниже другого. Я сделал этот вид скрытым и сместил его координаты y на высоту вида, чтобы они стали -(viewHeight).

Функциональная часть

  • Как только пользователь касается панели поиска, помещенной в панель навигации, я сделал ее скрытой, скрыл вид с текстовыми полями и сдвигал координаты y, пока они снова не стали равными 0.

  • В методах делегата панели поиска, - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar Я возвратил NO, сделал анимационную часть (упомянуто на предыдущем шаге) перед возвратом NO из этого метода.

  • Я сделал первое текстовое поле первым респондентом, чтобы автоматически отображалась клавиатура.

  • Теперь, когда я закончил заполнять данные в обоих текстовых полях, я перевернул анимацию и поместил заполненные данные в текстовые поля в строку поиска.

Надеюсь, это поможет.

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