Mit unserem Code für iOS 11 habe ich Probleme mit der UIS-Suchleiste im UINavigationController. stelle ich die SearchController/SearchBar so zusammen:UISearchBar bei falscher Position in iOS 11
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchBar.scopeButtonTitles = @[@"foo", @"bar"];
self.searchController.searchBar.showsScopeBar = YES;
self.searchController.searchResultsUpdater = self;
self.searchController.searchBar.delegate = self;
self.searchController.delegate = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.definesPresentationContext = YES;
if (@available(iOS 11.0, *))
{
self.navigationItem.searchController = self.searchController;
self.navigationItem.hidesSearchBarWhenScrolling = YES;
UISearchBar *searchbar = self.searchController.searchBar;
[searchbar setSomeColors];
}
Wenn unsere Standardfarben verwenden, die Dinge könnten OK aussehen, aber der Raum zwischen SearchBar und ScopeButtons vielleicht ein bisschen zu groß sein: die Backgroundcolor Ändern von Die Suchleiste verrät, was schief läuft:
So ist die UISearchBar in ihrer Superview etwas zu hoch platziert. Weiß jemand, was dieses Verhalten in iOS 11 verursacht?
Bitte brauchen mehr clarification.I dint Sie erhalten. – nikhil
Dort UISearchBar hat eine Eigenschaft namens searchFieldBackgroundPositionAdjustment, die das tut, was ich brauchte. Setzen Sie diese Eigenschaft einfach auf Ihren angegebenen Offset. – Tobias