2016-04-22 13 views
1

私はUISearchControllerを使用していますが正常に動作しています。しかし、ステータスバーを部分的に隠す検索バーの上に空白が残っています(フォーカスされている場合)。 This espaceUISearchController - 空白がステータスバーを隠す

すでにself.edgesForExtendedLayout = UIRectEdgeNoneself.navigationController.extendedLayoutIncludesOpaqueBars = YESに設定しようとしましたが、スペースはまだあります。 self.definesPresentationContext = YES;を設定しようとしましたが、searchbarがステータスバーの位置like thisを取得しました。

UINavigationControllerに埋め込まれたUIViewControllerを使用しています。これは今実装しているセットアップです:

@interface DirectoryViewController : UIViewController <UITableViewDataSource , UITableViewDelegate ,UISearchBarDelegate, UISearchControllerDelegate, UISearchResultsUpdating> 

@property (strong, nonatomic) NSMutableArray *personsArray; 
@property (nonatomic, strong) UISearchController *searchController; 
@property (nonatomic, strong) NSMutableArray *searchResults; 


@implementation DirectoryViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
UINavigationController *searchResultsController = [[self storyboard] instantiateViewControllerWithIdentifier:@"TableSearchResultsNavController"]; 

    // Our instance of UISearchController will use searchResults 
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController]; 

    // The searchcontroller's searchResultsUpdater property will contain our tableView. 
    self.searchController.searchResultsUpdater = self; 
    self.searchController.delegate = self; 
    self.searchController.searchBar.delegate = self; 

    //Cancel button tint 
    _searchController.searchBar.tintColor = [UIColor whiteColor]; 
    [self.searchController.searchBar setBackgroundImage:[UIImage imageNamed:@"navBar"] 
               forBarPosition:0 
                barMetrics:UIBarMetricsDefault]; 

    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { /// iOS 7 or above 
     self.edgesForExtendedLayout = UIRectEdgeNone; 
    } 

    self.navigationController.extendedLayoutIncludesOpaqueBars = YES; 

} 

私は助けていただきありがとうございます。ありがとう

答えて

0

解決策はThis answerです。

tableInsets変更:searchControllerはbecameFirstResponder

検索バーのアクションが終了し
self.directoryTable.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); 

とき

self.directoryTable.contentInset = UIEdgeInsetsMake(-10, 0, 0, 0); 

を。

関連する問題