UITableViewController – выпадающий список таблиц, чтобы показать новый UIView

Я пытаюсь создать UITableViewController таким образом, что когда пользователь нажимает кнопку «Поиск» на панели навигации, представление таблицы падает и UIView падает с панели навигации. Затем, когда пользователь удаляет где-либо за пределами UIView, UIView должен убираться, и представление таблицы должно возвращаться в исходное положение.

В настоящее время у меня есть следующий метод, который является селектором кнопки «Поиск». Примечание. Self.searchBar – это пользовательский подкласс UIView.

Есть ли более чистый / лучший способ достичь этого? Также я не уверен, как избавиться от представления после того, как пользователь удалит меню поиска … Я предполагаю, что я должен позвонить, [self.searchBar removeFromSuperview]; но не уверен, в какой метод делегата поставить эту строку.

Благодаря!

- (void)_showSearchMenu { CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height * .25); frame.origin.y = CGRectGetMaxY(self.navigationController.navigationBar.frame) - frame.size.height; self.searchBar.frame = frame; [self.navigationController.navigationBar.superview insertSubview:self.searchBar belowSubview:self.navigationController.navigationBar]; [UIView animateWithDuration:0.5 animations:^{ CGRect frame = self.searchBar.frame; frame.origin.y = CGRectGetMaxY(self.navigationController.navigationBar.frame); self.searchBar.frame = frame; self.tableView.contentOffset = CGPointMake(0, -250); }]; } 

Чтобы быть более ясным, я пытаюсь достичь чего-то похожего на эффект, наблюдаемый здесь в приложении HotelTonight (второй экран показывает, что происходит, когда вы нажимаете кнопку верхнего правого бара)

введите описание изображения здесь

введите описание изображения здесь

    2 Solutions collect form web for “UITableViewController – выпадающий список таблиц, чтобы показать новый UIView”

    Это, я думаю, лучший подход для этого, используйте этих делегатов:

    (CGFloat) tableView: (UITableView *) tableView heightForHeaderInSection: (NSInteger) раздел (UIView *) tableView: (UITableView *) tableView viewForHeaderInSection: (NSInteger) раздел

    Как:

    1. Создайте BOOL isOpen со значением по умолчанию NO
    2. Когда вы нажимаете кнопку «Поиск», выполните следующее:

       (void) searchButtonTouch:(id)sender { isOpen = (isOpen) ? YES : NO; isOpen = !isOpen; [self.urTableView reloadData]; } 
    3. Теперь в ваших делегатах:

       (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return (isOpen) ? 170.0f : 0.0f; } (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { CGFloat height = [self tableView:tableView heightForHeaderInSection:section]; UIView *vw = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, height)]; vw.backgroundColor = [UIColor yellowColor]; // add other controls here in your UIView // or // just add a UIView at top of your UITableView // then add other controls to it (if ur using storyboard) return vw; } 
    • Добавить Tapgesture в режиме супервизора
    • В TapGesture Action проверьте, есть ли вид SearchBar видимый
    • Если Visible скрывает вид DropDown, устанавливая новый фрейм с нулевой высотой
    • Вы можете добавить Tap Gesture Programmatically или из Interface Builder, вы можете использовать его метод делегирования «shouldReceiveTouch» или любое другое настраиваемое действие. Выполнение жеста
    Interesting Posts

    Равное расстояние вокруг UICollectionViewCells

    self.view? .presentScene: неожиданно найдено нуль при развертывании необязательного значения (Swift)

    Преобразование не работает на IOS

    Как правильно читать декодированные образцы PCM на iOS, используя AVAssetReader – в настоящее время некорректное декодирование

    Обнаруживать, если изменения int на 100

    Как я могу исключить некоторые файлы из индексации Xcode?

    Как просмотреть ошибки компиляции во всех файлах в XCode 4?

    Xamarin Studio btouch неподдерживаемый тип для полей: NSUuid

    перетаскивание уведомлений

    Как открыть собственное приложение для iOS из веб-приложения

    Проверьте, схожи ли два NSStrings

    Swift 2: «Bool» не конвертируется в «BooleanLiteralConvertible»

    загружать большое видео с помощью кусков через http post

    Как я могу получить правильную трассировку стека на Unity3d (iOS)

    Нестандартные методы пользовательского класса Objective C

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.