UISearchController搜索栏在显示时向下移动

时间:2016-01-27 10:48:11

标签: ios objective-c swift

问题:搜索栏在显示时向下移动。在呈现之前,栏位于导航栏的正下方。

更多信息:

  • 导航栏只是一个通过故事板手动添加到UIViewController的UINavigationBar
  • 最重要的是,UIViewController使用UIPresentationController来创建该效果,其中所呈现的VC稍微偏离顶部,并且呈现的VC按比例缩小并且在所呈现的VC“后面”。如果我不使用UIPresentationController,则不会发生这种转变。
  • searchController.hidesNavigationBarDuringPresentation = NO

任何想法?

enter image description here

2 个答案:

答案 0 :(得分:0)

self.definesPresentationContext = YES; 要么 self.edgesForExtendedLayout = UIRectEdgeNone;

另一方面,最好不要将搜索栏添加到tableview的标题中。

答案 1 :(得分:0)

if #available(iOS 11.0, *) {
    navigationItem.searchController = searchController
    navigationItem.hidesSearchBarWhenScrolling = false
} else {
    tableView.tableHeaderView = searchController.searchBar
}

如果在iOS 11.0下将searchBar设置为tableHeaderView,则会引起此问题,因此您可以这样做。一切都会好的!