2016-09-27 61 views
2

我有一个简单的tableViewController,一个searchBar与范围和navigationBarSearchBar和NavigationBar之间的空白 - Swift

当我点击我的searchBar我看到我的范围和所有作品。然后,我点击一行,我去我的DetailPage和搜索栏不隐藏(我不知道为什么)。

所以我点击取消然后我回到我的tableView。当我返回到我的tableView时,我的SearchBar和我的NavigationBar之间有一个空格。

Blank space

这是我的代码:

 self.resultSearchController = ({ 
      let controller = UISearchController(searchResultsController: nil) 
      controller.searchResultsUpdater = self 
      controller.hidesNavigationBarDuringPresentation = true 
      controller.dimsBackgroundDuringPresentation = false 
      controller.searchBar.sizeToFit() 
      controller.searchBar.scopeButtonTitles = ["Title", "Author", "Location", "Price", "User"] 
      self.tableView.tableHeaderView = controller.searchBar 
      return controller 
     })() 

func updateSearchResults(for searchController: UISearchController) 
    { 
     let scopes = resultSearchController.searchBar.scopeButtonTitles 
     let currentScope = scopes![resultSearchController.searchBar.selectedScopeButtonIndex] as String 
     filterContentForSearchText(searchText: searchController.searchBar.text!, scope: currentScope) 
    } 
+0

我认为调整ScrollView Insets为false适用于您...您的控制器属性检查器取消选中调整ScrollView插入 –

+0

我已经尝试过但结果相同 – Carlo

+0

您是否通过记录'frames'来确定边界的实体帐户? ? (_header,insets,searchbar_)将'viewDidLoad'中的代码与'viewWill/DidAppear'区分开来的是什么? – Aerows

回答

3

尝试添加

self.automaticallyAdjustsScrollViewInsets = false; 

    self.extendedLayoutIncludesOpaqueBars = true 

viewDidload

+0

无。错误是一样的。每次在使用搜索栏和范围之后转到我的详细信息页面时,在导航栏和表格视图 – Carlo

+0

之间添加一个空白区域,在您的主视图中添加一个空标签(在搜索栏上方添加一个空标签 - 即您的标签应该是第一个控件在你的视图层次结构中) – Lion

+0

我已经解决了谢谢 – Carlo

相关问题