【问题标题】:UISearchBar on the top of UITableView which can hide but stay close to UINavigationBarUITableView 顶部的 UISearchBar 可以隐藏但靠近 UINavigationBar
【发布时间】:2011-06-24 18:24:35
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iphone ios uitableview uiscrollview uisearchbar


    【解决方案1】:

    滚动表格视图时,您需要自行隐藏搜索栏。所以,不要把它作为一个 UITableView 标题。您可以通过将其高度设置为零来隐藏它。这样,如果您的 tableview 设置为自动调整大小,它将展开。

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

    您也可以查看 UISearchDisplayController,但我认为它并没有您想要的行为。

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

    【讨论】:

    • 所以我们需要“手动”完成所有事情,没有简单的组件可以做到这一点?
    • 您可以在 github 或 bitbucket 上四处搜索,看看是否有人创建了可以借用的库。否则,我认为您必须使用自己的代码来处理它。
    【解决方案2】:

    向下滚动时,表格视图标题将移动。它是 tableview 的属性。 如果要放置带有导航栏的搜索栏。为什么不将搜索栏放在导航栏的正下方。使用搜索栏和单独的表格视图。

    【讨论】:

    • 1.是的,我知道,我不想滚动 / 2。因为我想在滚动到底部时隐藏 UIScrollBar
    • 如果您想在向下滚动时隐藏,请尝试使用委托 scrollViewDidBeginScrolling,如果 scrollView.contentOffset 大于零,则在委托内隐藏 searchBar。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      这将回答你的问题:

      iPhone: Hide UITableView search bar by default

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

      祝你好运。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多