UITableView顶部的UISearchBar可以隐藏,但保持靠近UINavigationBar

我想在我的UITableView顶部有一个UISearchBar,当你向下滚动时隐藏 :答案很简单,我只需要将它添加到我的表格视图标题,如下所示:

UISearchBar *search = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 45)]; self.tableView.tableHeaderView = search; [search release]; 

但问题是,当你向上滚动UISearchBar 适合 UITableView的顶部,而不是UINavigationBar的顶部。 为了更清楚我在邮件(不好)和游戏中心(好)做了一个屏幕。

在这里输入图像说明

我想要在游戏中心一样。 你知道他们是怎么做的吗?

当您滚动tableview时,您将需要自己隐藏search栏。 所以,不要把它作为一个UITableView头。 您可以通过将其高度设置为零来隐藏它。 这样,如果你的tableview被设置为自动resize,它将会展开。

我将尝试在另一个视图中将UITableView和UISearchBar作为对等体。 GameCenter图像不具有search栏作为表视图标题,而是将它们作为单独的子视图。

你也可以看看UISearchDisplayController,但我认为它不完全是你想要的行为。

编辑: 这个问题基本上是你的问题,并在答案中有一些代码。

桌面标题将向下滚动。 这是tableview的财产。 如果你想放置一个导航栏的search栏。 为什么不把search栏放在导航栏的正下方? 使用search栏和单独的tableview。

右侧的UISearchBar在另一个UIView上,它不是UITableView的一部分。 所以,你可以添加一个子视图来放置UISearchBar,而另一个子视图是用于UITableView的。

这将回答你的问题:

iPhone:默认隐藏UITableViewsearch栏

相同的概念,不同的控制器

祝你好运。