Хобрук: Ваш путь к мастерству в программировании

Перемещение табличного представления SearchBar

У меня есть панель поиска и контроллер отображения поиска с реализованными соответствующими методами. В моем xib у меня есть текстовое поле над этой панелью поиска. Я хочу, чтобы табличное представление отображалось под моей панелью поиска, а не закрывало панель поиска или текстовое поле над ней.

Я пробовал это:

self.searchDisplayController.searchResultsTableView.frame = CGRectMake(0, 247, 320, 400);

Но это, кажется, не имеет никакого эффекта. Как установить позицию UITableView?

ОК - с этим -

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
tableView.frame = CGRectMake(0, 200, 320, 400);

}

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


  • Эта серая область должна быть наложением UITableView, показывающим результат поиска. Попробуйте добавить начальный tableView из интерфейса xib и использовать синтезированное свойство в ваших методах SearchDisplayController. 27.12.2013

Ответы:


1

попробуй установить фрейм в контроллере

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
     if ( [controller.searchBar.superview isKindOfClass: [UITableView class]] )
 {
    UITableView* staticTableView = (UITableView*)controller.searchBar.superview;

    CGRect f = [tableView.superview convertRect: staticTableView.frame fromView: staticTableView.superview];
    CGRect s = controller.searchBar.frame;
    CGRect newFrame = CGRectMake(f.origin.x,
                                 f.origin.y + s.size.height,
                                 f.size.width,
                                 f.size.height - s.size.height);

    tableView.frame = newFrame;
 }
}
27.12.2013

2

Старый вопрос, но я думал, что все равно отвечу в надежде, что это может помочь кому-то другому - у меня была такая же проблема, и вызов scrollRect всякий раз, когда обновлялась строка/результаты поиска, работал - вам нужна ссылка на контроллер представления (self.displayController в данном случае), который отображает результаты поиска.

    [self.displayController.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) 
                                                 animated:NO];
02.09.2016
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..