UITearchBar位于UITableView的顶部,它可以隐藏但保持接近UINavigationBar

时间:2011-02-10 10:32:45

标签: iphone ios uitableview uiscrollview uisearchbar

我希望UITearchBar位于我的UITableView顶部,当你向下滚动时隐藏:答案很简单,我只需将它添加到我的表视图标题中,如下所示:< / p>

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

但问题是当你向上滚动UISearchBar 适合UITableView的顶部,而不是UINavigationBar的顶部。为了更清楚,我在Mail(不好)和Game Center(好)中制作了一个屏幕。

enter image description here

我想和Game Center一样。你知道他们是怎么做的吗?

4 个答案:

答案 0 :(得分:4)

滚动桌面视图时,您需要自己隐藏搜索栏。所以,不要把它作为UITableView标头。您可以通过将其高度设置为零来隐藏它。这样,如果你的tableview设置为autoresize,它将会扩展。

我会尝试将UITableView和UISearchBar作为另一个视图中的对等体。 GameCenter图像没有搜索栏作为表格视图标题,而是将它们作为单独的子视图。

您还可以查看UISearchDisplayController,但我认为它不具备您想要的行为。

编辑:This question基本上是您的问题,答案中有一些代码。

答案 1 :(得分:1)

在向下滚动时,tableview标题会移动。这是tableview的财产。 如果要放置带导航栏的searchBar。为什么不将搜索栏放在导航栏的下方。使用搜索栏和单独的tableview。

答案 2 :(得分:0)

右侧的UISearchBar位于另一个UIView上,它不是UITableView的一部分。因此,您可以添加子视图来放置UISearchBar,另一个子视图用于UITableView。

答案 3 :(得分:0)

这将回答你的问题:

iPhone: Hide UITableView search bar by default

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

祝你好运。