我正在尝试在当前项目中实现UISearchController,并且我正在努力将其UISearchBar正确定位在我的ViewController上。
在我的ViewController上,我有一个UIView,用作searchControllers searchBar的容器视图。创建searchController时,我将其searchBar添加为ViewControllers容器视图的子视图。 ViewController也嵌入在NavigationController中,其Navbars颜色为红色。
我遇到的问题是当我激活搜索控制器时,通过关注searchBar,在动画发生后将Navbar推离屏幕,并将searchBar修复到navBar曾经的位置,背景为searchBar没有扩展到覆盖状态栏。
View Controllers视图顶部的深灰色条带是UISearchController附带的调光视图和红色导航栏曾经的白色背景的混合。
如果您对此问题有任何见解,或者您需要更多信息,请与我们联系。
答案 0 :(得分:0)
如果将viewController嵌入到UINavigationBarCOntroller或UITabBarViewControoler中,默认情况下,内容会显示在状态栏下。我认为你应该在推出navibar之后将SearchBar修复到UIView的边缘,而不是navBar曾经的位置。
但是,这可能仍然不适合您。然后你需要在顶部锚点添加一个常量,使SearchBar扩展一点以覆盖状态栏。我在StoryBoard中尝试了它并且它有效,我相信如果你想要的话,以编程方式实现它并不难。
在这里,我制作了如何设置SearchBar约束的截图,Top Space为:Top Layout Equals -20,常量很重要: