Мы давно разработали приложение для 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', даже когда он сфокусирован?