从 iOS5 到 iOS6 的 TableView 和 SearchBar 行为有啥不同?

Posted

技术标签:

【中文标题】从 iOS5 到 iOS6 的 TableView 和 SearchBar 行为有啥不同?【英文标题】:TableView and SearchBar behavior from iOS5 to iOS6 different?从 iOS5 到 iOS6 的 TableView 和 SearchBar 行为有什么不同? 【发布时间】:2012-09-25 11:58:56 【问题描述】:

在我的应用程序中,我使用 UITableView 和 SearchBar,没什么特别的。 SearchBar 被添加为 tableHeaderView

self.searchDisplayController.searchBar.delegate = self;
     self.myTableView.tableHeaderView = self.searchDisplayController.searchBar;

然后我使用以下代码让 SearchBar 保持打开状态,这样它在滚动时就不会被隐藏。

- (void) scrollViewDidScroll:(UIScrollView *)scrollView 

    CGRect tableBounds = self.myTableView.bounds;
    CGRect searchBarFrame = self.searchDisplayController.searchBar.frame;

    self.searchDisplayController.searchBar.frame = CGRectMake(tableBounds.origin.x, tableBounds.origin.y, searchBarFrame.size.width, searchBarFrame.size.height);
 

这在 ios5 和 iOS5.1 中很好用,但在 iOS6 中不行,但我不知道发生了什么变化,有人有什么想法吗?

我们将不胜感激。

iOS5 和 iOS5.1 中的 SearchBar

iOS6 中的 SearchBar 是隐藏的

【问题讨论】:

是的 - 我看到了同样的事情。可能与自动布局有关。你解决了吗? 【参考方案1】:

我不确定它为什么会改变,但让它在 iOS 6 上运行相当简单。

不要将UISearchBar 设置为tableHeaderView,而是使用普通的UIView,然后将搜索栏添加为该视图的子视图。

【讨论】:

以上是关于从 iOS5 到 iOS6 的 TableView 和 SearchBar 行为有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone/iPad 上使用 iOS5 或 iOS6 拍摄的照片上添加文本标签?

iOS5和iOS6的CCCrypt区别

当我们在 ios5.1、ios6 等其他操作系统版本中拥有应用程序时,如何在 ios5 模拟器中启动应用程序?

iOS6 和 iOS5 中 UIImage Orientation 的不同行为

网站在 iOS6 中正常呈现,但在 iOS5 iPad 模拟器中翻倍

setDelegateQueue 在 iOS5 上不工作,但在 iOS6 上工作正常