2017-09-22 22 views
1

私たちのコードをiOS 11に採用すると、私はUINavigationControllerに配置されたUISearchbarに苦労しています。 私はこのようなSearchController /検索バーを設定しますののbackgroundColorを変更 default layout :私たちのデフォルトの色を使用する場合iOS 11の間違った位置にあるUISearchBar

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]; 
} 

、物事はOKに見えるかもしれませんが、検索バーとScopeButtonsの間のスペースは少し大きすぎるかもしれません検索バーが間違っていることを明らかにします。 different coloring reveals the problem

したがって、UISearchBarはスーパービューでは高すぎます。誰もが知っている、iOS 11でこの動作の原因は何ですか?

答えて

3

おっと、私はこれはiOSの5 ...

[self.searchController.searchBar setSearchFieldBackgroundPositionAdjustment:UIOffsetMake(0.0, 8.0)]; 

UISearchBar.h

@property(nonatomic) UIOffset searchFieldBackgroundPositionAdjustment NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR; 
+0

を参照してください以来存在し、あなたを得るより多くのclarification.Iくぼみを必要としてください、わかりませんでした。 – nikhil

+1

UISearchBarには、私が必要とするsearchFieldBackgroundPositionAdjustmentというプロパティがあります。このプロパティを指定されたオフセットに設定するだけです。 – Tobias

関連する問題