От новичка до гуру: Курсы программирования на CyberDuff

Панель области видимости iOS не появляется после добавления в UISearchBar

Я добавил панель области видимости под панелью поиска. Однако полоса обзора не появляется. Есть идеи? Пожалуйста помоги.

- (UISearchBar *)searchBar{
    if (!_searchBar) {
        _searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 24)];
        [_searchBar setBackgroundImage:[UIImage imageNamed:@"ic_searchBar_bgImage"]];
        [_searchBar sizeToFit];
        [_searchBar setPlaceholder:@"Search"];
        [_searchBar.layer setBorderWidth:0.5];
        _searchBar.showsScopeBar = YES;
        _searchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"All", @"Near Me", @"Coming Soon", nil];

        [_searchBar.layer setBorderColor:[UIColor colorWithRed:229.0/255 green:229.0/255 blue:229.0/255 alpha:1].CGColor];
        [_searchBar setDelegate:self];
        [_searchBar setKeyboardType:UIKeyboardTypeDefault];
        [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setDefaultTextAttributes:@{
                                                                                                     NSFontAttributeName: [UIFont fontWithName:@"Bitter" size:14],
                                                                                                     }];
    }
    return _searchBar;
}

ОТРЕДАКТИРОВАНО: я добавил его в заголовок Tableview. Как я могу изменить, чтобы он появился?

- (UITableView *)tableView{
    if (!_tableView) {
        _tableView=[[UITableView alloc]initWithFrame:CGRectMake(0.0, 0.0, kScreenWidth, kScreenHeight-49.0) style:UITableViewStylePlain];
        [_tableView setDelegate:self];
        [_tableView setDataSource:self];

        _tableView.tableHeaderView=self.searchBar;

        UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
        [_tableView setTableFooterView:v];

    }
    return _tableView;
}

  • Где вы добавили searchBar в представление? 21.06.2018

Ответы:


1

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

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

Пока ваше приложение находится в режиме отладки (симулятор iOS), попробуйте следующее:

  • XCode -> Меню отладки -> Просмотр отладки
  • Нажмите Capture View Hierarchy.
  • С левой стороны должна появиться древовидная структура, показывающая ваш вид таблицы. С правой стороны он покажет вам скриншот ваших просмотров.
  • В дереве слева найдите файл UISearchbar.
  • В его иерархии найдите объект типа: _UISearchBarScopeBarBackground. За ним следует UISegmentedControl, который имеет сегменты, соответствующие каждому тексту области.

Обратитесь к изображению ниже (это должно появиться в вашей иерархии областей):

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

  • Если UISegmentedControl выглядит здесь нормально, но не отображается с правой стороны, проверьте, не скрыто ли оно каким-либо другим представлением/представлением таблицы. Некоторая настройка кадра должна решить эту проблему.

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

21.06.2018
  • Спасибо, Нирав, я не видел там никакого UISegmentedControl. Буду дальше разбираться. Спасибо за ваши подсказки. 25.06.2018
  • Наконец, я использую отдельный UISegmentedControl, чтобы делать так, как мне нужно, чтобы он отображался постоянно. 26.06.2018
  • странно не получилось. Вы подали радар в Apple? developer.apple.com/bug-reporting 26.06.2018
  • Потому что мне интересно, повлиял ли на это UISearchbar. Теперь я применил отдельный UISegmentedControl и его работу! 26.06.2018
  • Полезно знать, но, по крайней мере, он должен быть там, даже если он не отображается. Вы закончили тем, что заново изобрели велосипед! Ты это видел? stackoverflow.com/a/25788774/1506363 26.06.2018
  • Новые материалы

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

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

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

    Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
    Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

    Все о кейсах: Camel, Snake, Kebab & Pascal
    В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

    Как работает дистанционное парное программирование и почему оно может изменить вашу жизнь
    Серебряная пуля от одиночества и отвлекающих факторов во время обучения программированию Независимо от того, работаете ли вы или учитесь удаленно, велика вероятность, что одиночество и..