【问题标题】:UISearchController search bar shifting down when presentedUISearchController 搜索栏在出现时向下移动
【发布时间】:2016-01-27 10:48:11
【问题描述】:

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

更多信息:

  • 导航栏只是一个 UINavigationBar,通过 storyboard 手动添加到 UIViewController 中
  • 最重要的是,UIViewController 使用 UIPresentationController 来创建呈现的 VC 从顶部略微偏移的效果,并且呈现的 VC 被缩小并“落后于”呈现的 VC。如果我不使用 UIPresentationController,则不会发生这种转变。
  • searchController.hidesNavigationBarDuringPresentation = NO

有什么想法吗?

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    self.definesPresentationContext = YES; 或者 self.edgesForExtendedLayout = UIRectEdgeNone;

    另一方面,最好将搜索栏添加到表格视图的标题中。

    【讨论】:

    • 试过了,还是不行。搜索栏当前是 tableview 的标题。谢谢。
    【解决方案2】:
    if #available(iOS 11.0, *) {
        navigationItem.searchController = searchController
        navigationItem.hidesSearchBarWhenScrolling = false
    } else {
        tableView.tableHeaderView = searchController.searchBar
    }
    

    如果在iOS 11.0下将searchBar设置为tableHeaderView会出现这个问题,所以可以这样操作。一切都会好起来的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多