iOS UISearchController не охватывает полностью - PullRequest
0 голосов
/ 04 июня 2018

В некоторых типах устройств, в основном в 6 с, UISearchController не охватывает полностью.

    //Init search controller
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    UISearchBar *searchBar = self.searchController.searchBar;
    searchBar.frame = self.searchBarHolder.bounds;
    self.searchController.searchResultsUpdater = self;
    self.searchController.delegate= self;
    self.searchController.searchBar.delegate=self;
    self.searchController.dimsBackgroundDuringPresentation = NO;
    self.searchController.hidesNavigationBarDuringPresentation = NO;

    [self.searchBarHolder addSubview:searchBar];
    [self.searchBarHolder layoutIfNeeded];
    [searchBar sizeToFit];

, где searchBarHolder устанавливается в раскадровке с ограничениями trailing-0, top-0, leading-0, height - 45

Этовыдает следующий результат:

enter image description here

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

enter image description here

Понятия не имею, почему он отображается именно так.

Этот UIViewController встроен в UINavigationCOntroller, и он встроен в UITabBarController как один из элементов вкладки.

1 Ответ

0 голосов
/ 05 июня 2018

Заменить эту строку

searchBar.frame = self.searchBarHolder.bounds;

На эту

CGRect rect = self.searchBarHolder.bounds;
rect.size.width = [UIScreen mainScreen].bounds.size.width;
searchBar.frame = rect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...