Как изменить размер UISearchController.searchBar, когда сосредоточены? - PullRequest
0 голосов
/ 16 апреля 2019

Мы давно разработали приложение для iOS 5, в котором мы использовали объект «Панель поиска и Контроллер поиска» на storyboard. Поскольку iOS8 UISearchDisplayController равно deprecated, я пытаюсь удалить существующую «Панель поиска и контроллер отображения поиска» с помощью UISearchController.

Поскольку UISearchController недоступно в «Библиотеке объектов» на интерфейсе, я добавил его программно к UIView на interface, используя следующий код:

//Set up Search Controller
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = (id)self;
self.searchController.dimsBackgroundDuringPresentation = YES;
self.searchController.searchBar.delegate = self;

//Adding as subview to UIView 'searchBarContainer'
[self.searchBarContainer addSubview:self.searchController.searchBar];
[self.searchBarContainer bringSubviewToFront:self.searchController.searchBar];

self.definesPresentationContext = YES;
self.extendedLayoutIncludesOpaqueBars = YES;

И установите фрейм 'searchController' равным UIView следующим образом:

UISearchBar *ctrlSearchBar = self.searchController.searchBar;
ctrlSearchBar.frame = CGRectMake(0, 0, self.searchBarContainer.frame.size.width, self.searchBarContainer.frame.size.height);

Размер searchBar хорош, но когда он сфокусирован на щелчке по нему, ширина searchBar автоматически увеличивается.

Я даже пытался использовать NSLayoutConstraints, но не решил проблему. Может кто-нибудь помочь, как исправить размер 'UISearchController.searchBar', даже когда он сфокусирован?

1 Ответ

0 голосов
/ 02 мая 2019

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

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