在搜索栏中弹出表格视图,swift 2

Posted

技术标签:

【中文标题】在搜索栏中弹出表格视图,swift 2【英文标题】:Pop up with table view in search bar, swift 2 【发布时间】:2016-04-10 17:18:44 【问题描述】:

我正在尝试使用 Google 地点和自动完成进行操作,关于 Google 地点的自动完成我得到了结果,但我希望将结果放在 Google 地图前面的带有表格视图的搜索栏中,就像弹出窗口一样。但我刚刚找到了带有搜索栏和表格视图的示例,以及它们背后的更多内容。我期待着做如下图所示的事情。

Example about pop up with table view in front of maps

任何帮助将不胜感激。

【问题讨论】:

我相信仅显示部分屏幕的 tableView 呈现为弹出框(这是某种类型的 segue)。您必须创建一个 viewController 或 tableViewController 并且呈现为弹出框。 Popovers 仅适用于 iPad,因此如果它不是 iPad,它将以模态方式呈现。我会在 youtube 上查看有关如何呈现像这样的弹出框的视频:youtube.com/watch?v=48UA06EwfrM 哦,谢谢。我在 Iphone 中看到了类似的东西,虽然提议在 Iphone 中进行,但我只是在 Ipad 中显示了一张图片,因为更清楚地看到我想做什么。在 Iphone 中,搜索栏调用的表格视图以小透明的方式出现在地图前面,但我不知道弹出框等动作的名称。我会搜索一下。感谢您的关注,如果您有其他建议,我希望看到。 你是说在 iPhone 上,当你点击搜索栏时,你想让一个 tableView 出现在屏幕上已经显示的内容上?这在 iPhone 上是可能的!它只是不会作为屏幕的一部分显示,tableView 将出现在整个屏幕上,直到用户点击取消或 tableView 单元格。 是的。我想 tableView 出现在内容上,因为我刚刚看到了 TableView 和 Search bar 的示例并在其中进行了过滤。当您点击搜索栏时,我想在地图前显示一个表格视图。 我知道 YouTube 上有一个视频,但我找不到。我会尝试四处寻找类似“点击搜索栏时显示 tableView” 【参考方案1】:

注意:我从未亲自这样做过,但这是我的理论:

UISearchBar 是一个漂亮的工具,您可以将委托连接到它以控制其操作。以下是文档的屏幕截图,可在此处找到:link。

所以,我要做的是将 UISearchBar 设置为它周围的类。然后,实现您的委托方法,以便当调用上图中显示的任何方法时,周围的类将转到 UIPopoverPresentationController,而 UIPopoverPresentationController 中又会有一个 UITableView。 (弹出框字面意思会“弹出”屏幕的其余部分。)

您必须确保您设置为委托的类实现了 UISearchBarDelegate 协议。它看起来像这样:

class Foo: UISearchBarDelegate 
    /* stuff */

之后,所有数据配置都由您决定。同样,这都是理论上的,因为我自己还没有真正实现过。如果我有什么问题,请告诉我。

祝你好运。

编辑:为了回应 Dan L 对最初问题的评论,实际上可以在不进入 iPhone(或任何紧凑型屏幕)的模式下出现弹出框。您必须将呈现类设置为UIPopoverPresentationController 的委托,然后实现这样的委托方法:

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle 
    return UIModalPresentationStyle.None

所有代码所做的就是防止弹出框永远进入模态。

【讨论】:

【参考方案2】:

我一直在寻找它是弹出框。我想使用我之前提到的弹出框,我发现了一些类似here的解决方案:

【讨论】:

以上是关于在搜索栏中弹出表格视图,swift 2的主要内容,如果未能解决你的问题,请参考以下文章

Swift 搜索栏 - 使用 Alamofire 请求更新表格视图

Swift 中的下拉搜索栏/视图?

如何在搜索栏swift的表格视图结果中加载数据

展开 segue 后,swift 2 搜索栏不会隐藏

当特定 ViewController 类被推入另一个选项卡中的堆栈时,如何从堆栈中弹出视图控制器?

搜索栏不一致错误(Swift)?