【问题标题】:How to stop UISearchBar from Scrolling with UITableview in iOS 8如何阻止 UISearchBar 在 iOS 8 中使用 UITableview 滚动
【发布时间】:2014-12-11 22:29:20
【问题描述】:

我正在使用 UISearchBar 、 UISearchController 和 UISearchResultsController 并且不知道如何阻止 UISearchBar 在 iOS 8 中使用 UITableview 滚动

没有找到有效的答案。

【问题讨论】:

    标签: uisearchbar uisearchcontroller uisearchresultscontroller


    【解决方案1】:
    1. 使用 UIViewController 代替 UITableViewController
    2. 在状态栏正下方添加一个子视图,就是UISearchBar的大小
    3. 在子视图正下方添加一个tableView
    4. 连接您的 outlet、dataSource 和 delegate
    5. 使用 AutoLayout 将视图保持在原位
    6. 在 viewDidLoad 方法中,像往常一样配置您的 UISearchController,但不要将 searchController searchBar 设置为 tableView 标题,而是将其添加为您在 storyBoard 中创建的视图的子视图
    7. 就是这样...只是发布以防其他人感兴趣。

    【讨论】:

    • 没有更简单的方法来实现这一点吗?这看起来管理起来相当复杂
    • 其实很简单,这里有一个演示链接:github.com/ksenior1/FixedSearchBar
    • 运行流畅!而且它比看起来更容易实现。谢谢
    【解决方案2】:

    请在此处查看本杰明的出色回复:https://stackoverflow.com/a/27129481/1505096

    简而言之:使用带有嵌入式 UITableView 的 UIViewController,不是 UITableViewController。前者让您可以灵活地使用表格视图做任何您想做的事情,包括您正在寻求的经常请求的行为,而在后者中,视图本身一个表格视图,所以你很在正常设计范式之外可以做的事情受到更多限制。

    使用 UIScrollViewDelegate 并在其中调整框架(正如我在许多 SO 响应中看到的那样)是一种 hack,您无需诉诸这种诡计。

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 2016-02-19
      • 2021-02-14
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多