iOS 7:显示搜索栏的弹出框
Posted
技术标签:
【中文标题】iOS 7:显示搜索栏的弹出框【英文标题】:iOS 7: showing a popover from a search bar 【发布时间】:2013-09-25 05:07:05 【问题描述】:我在 iPad 应用程序中有一个 UISearchBar
。当搜索栏开始编辑时,我会在搜索栏下方显示一个弹出框,其中包含搜索建议和以前的搜索:
这是应用中长期存在的交互。现在在 ios 7 下,popover 后面的所有东西(就 z 轴而言)看起来都变暗了——大概是 popover 在窗口顶部添加的UIView
不再透明。这意味着用户当前正在编辑的搜索栏看起来不再处于活动状态。它是仍然处于活动状态(用户仍然可以在搜索栏中选择文本并点击“删除”按钮以清除搜索栏的文本),但它看起来像是处于非活动状态,这让我有点恼火。
对于 iOS 7 中弹出框工作方式的这种变化,我有哪些选择?
这是我到目前为止的想法:
尝试通过清除弹出窗口的背景来恢复 iOS 6 的行为(UIPopoverController
中不允许这样做,所以我想这将涉及挖掘并找到弹出窗口的窗口)
停止使用 UIPopoverController
并尝试使用我自己的视图控制器来模仿它,该控制器会使除搜索栏以外的所有内容都变暗
我是否遗漏了一些明显的东西?由于几个不同的原因,这两个选项(以及我想到的其他愚蠢/疯狂的选项)似乎都难以实施和/或糟糕的想法。
Apple 用于演示此类功能的示例项目ToolbarSearch 表现出与我的应用相同的行为。这个变暗的搜索栏不可能是用户的最佳体验。例如,考虑 iPad 的日历:它从在导航栏中有一个搜索栏,当它处于活动状态时在其下方显示一个弹出框(就像我的应用程序一样)到仅显示一个显示弹出框 的搜索图标 一个搜索栏。我想改变是因为我在这里遇到的问题。
【问题讨论】:
【参考方案1】:在我看来,最简单且对用户最友好的做法是将搜索栏移至UIPopover
。要删除暗淡,您将不得不编写自己的UIPopoverBackgroundView
。如果您想了解如何操作,请查看here。
【讨论】:
我不认为这是UIPopoverBackgroundView
替换像 DDPopoverBackgroundView
的用途 - 它们不是用于自定义弹出框背景(即自定义箭头,内容周围的一点点铬视图控制器),而不是弹出窗口出现在其顶部的窗口?无论如何,是的,看起来最好的做法是效仿 Apple 并将搜索栏移到弹出窗口中。
它似乎影响了这一切。我将 DDPopoverBackgroundView 弹出到 Apple 的 ToolbarSearch 示例代码中,发现暗淡消失了。这是截图:imgur.com/H2h1pPF以上是关于iOS 7:显示搜索栏的弹出框的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 作为 iPhone 上的弹出框?
《iOS Human Interface Guidelines》——Popover
在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框