Я реализую поиск по ключевым словам на основе местоположения. Если кто-нибудь видел панель поиска Yelp, это то, что я пытаюсь сделать. Как правило, после нажатия строки поиска я хочу предоставить одно текстовое поле для ключевого слова, а другое для местоположения. Какой элемент пользовательского интерфейса я должен подкласса? Как я могу это сделать?
IPhone - панель поиска нескольких текстовых полей
Ответ 1
Я тоже сделал подобное приложение, довольно давно.
Что я сделал в своем приложении, я последовал этим шагам (я просто даю краткое описание, а не часть кода):
Начальный вид:
- Я использовал панель поиска, вставленную в панель навигации. (Я сделал это программно в
viewDidLoad
моего класса). - В моем xib файле этого класса я разместил представление сверху и в него поместил два
UITextFields
один под другим. Я сделал это представление скрытым и сдвинул свои координаты y на высоту представления, чтобы они стали-(viewHeight)
.
Функциональная часть
-
Как только пользователь коснется строки поиска, помещенной в панель навигации, я сделал ее скрытой, скрытой от просмотра с текстовыми полями и сдвинув координаты y до тех пор, пока они снова не станут 0.
-
В методах делегата панели поиска
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
я вернул NO, сделал часть анимации (упомянутую на предыдущем шаге), прежде чем возвращать NO из этого метода. -
Я сделал свое первое текстовое поле первым ответчиком, чтобы клавиатура появилась автоматически.
-
Теперь, когда я заполняю данные в обоих текстовых полях, я отменил анимацию и поместил данные в текстовые поля в панель поиска.
Надеюсь, что это поможет.
Ответ 2
Реализация Yelp выглядит как пользовательский вид с двумя объектами UITextField, с трансляцией и масштабированием анимации, чтобы он выглядел увеличенным сверху. После завершения анимации в иерархию добавляется представление таблицы. Клавиатура вызывается, создавая одно из текстовых полей, отвечающих первым.
BTW - вообще говоря, объединение элементов UI вместе является предпочтительным для подкласса.