Хорошо, я потратил на это 8 часов без везения.UISearchController Search Bar Position Drops 64 балла
Панель поиска появляется ровно 64 очков слишком низко:
Все остальные кадры точно правильно.
Редактировать: - Это вид UISearchController
, который вызывает ошибку origin.y
. Он получает значение 64, когда оно должно быть 0. Если добавить этот метод:
- (void)didPresentSearchController:(UISearchController *)searchController
{
[super didPresentSearchController:searchController];
searchController.view.frame = CGRectMake(0, 0, searchController.view.frame.size.width, searchController.view.frame.size.height);
}
Тогда мнения выравнивать. Тем не менее, его janky, потому что он прыгает. Если я изменяю кадр в willPresentSearchController
, он не работает, так как контроллер должен делать какой-то макет после его представления.
Если я использую SparkInspector и отредактировал фрейм UISearchBarContainerView
от начала 64 (что он установлен на 0, то проблема решена.
Вот моя соответствующая конфигурация:
self.searchResultsController = [[GMSearchTableViewController alloc] init];
self.definesPresentationContext = YES;
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchResultsController];
self.searchController.dimsBackgroundDuringPresentation = YES;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
[self.view addSubview:self.searchController.searchBar];
Я не использую Interface Builder, все настроено в коде. Я уверен, что настройка definesPresentationContext
верна.
VC находится в обычном UINavigationController
, который находится внутри SplitViewController (но проблема существует и на iPhone).
Любые идеи? Я чувствую, что мне не хватает простой опции конфигурации в отношении UINavigationBar
У меня также есть другой контроллер, который использует настраиваемую модель контроллера контейнера, которая является более сложной и работает.
Когда я установил
self.definesPresentationContext = NO;
Так что теперь UISearchBar
получает установлены правильно, но контекст презентации неправильно, в результате чего вид таблицы в UISearchController
«сек, чтобы занять полное представление ,
Благодарим вас за предоставление решения по вашему вопросу. Это помогло. самостоятельно.definePresentationContext = NO; – Coder