【问题标题】:searchBar not centered in navigationItemsearchBar 不在 navigationItem 中
【发布时间】:2018-09-18 13:59:15
【问题描述】:

当前状态

我正在以编程方式进行。我也尝试将其设置为 TitleView,但它不起作用。 代码如下:

        //searchBar
    let searchController = UISearchController(searchResultsController: nil)
    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search Players"
    navigationItem.searchController = searchController
    navigationItem.hidesSearchBarWhenScrolling = false
    definesPresentationContext = true

我在 searchBar 下也有一个 ScopeBar,当被选中时。 如果我这样做:

searchController.titleView = searchController.searchBar 

它就位,但我无法再选择/点击搜索栏。

【问题讨论】:

标签: ios swift uitabbarcontroller navigationitem


【解决方案1】:

对我来说,您的示例效果很好,但也许您可以使用它。

   navigationItem.titleView = searchController.searchBar

您可以像这里一样将搜索栏插入导航。 你能解释一下表格视图标题中的搜索栏有什么问题吗?什么不工作?

【讨论】:

  • 谢谢。 .titleView 正在工作,但搜索栏变得不可选择。我将添加有关问题的详细信息。
  • 这是很奇怪的行为,可能是导航栏有问题,需要查看更多细节。
【解决方案2】:

如果你的 iOS 版本大于 ios11 或等于你应该像这样添加

navigationItem.searchController = searchController

否则

navigationItem.titleView = searchController.searchBar

你也应该提供更多细节

【讨论】:

  • 谢谢。问题是当我使它等于 .titleView 时,searchBar 就位,但不能再被选中并且它不起作用。
【解决方案3】:

一种方法是使用边界将其手动设置为居中。但是在搜索栏激活(点击)时会再次混乱,需要重新设置。

searchController.searchBar.bounds=CGRectInset(searchController.searchBar.frame, 0.0f, -2.5f);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多